--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
nomadnet/ui/textui/Conversations.py 686ca41b4e25a75475c7c27f69a85a37e5ccad17 (686ca41b) Text, 38.07 KB
Tff7b72import T7ee787RNS
Tff7b72import T7ee787os
Tff7b72import T7ee787time
Tff7b72import T7ee787nomadnet
Tff7b72import T7ee787LXMF
Tff7b72import T7ee787urwid
Tff7b72from T7ee787datetime Tff7b72import Te6edf3datetime
Tff7b72from T7ee787nomadnetT7ee787.T7ee787Directory Tff7b72import Te6edf3DirectoryEntry
Tff7b72from T7ee787nomadnetT7ee787.T7ee787vendorT7ee787.T7ee787additional_urwid_widgets Tff7b72import Te6edf3IndicativeListBox
Tff7b72class T56d364ConversationListDisplayShortcutsTb4b4b4(Tb4b4b4)Tb4b4b4:
Tff7b72def Tff7b72__init__Tb4b4b4(Tff7b72selfTb4b4b4, Te6edf3appTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffapp Tff7b72= Te6edf3app
Tff7b72selfTff7b72.Td2a8ffwidget Tff7b72= Te6edf3urwidTff7b72.Td2a8ffAttrMapTb4b4b4(Te6edf3urwidTff7b72.Td2a8ffTextTb4b4b4(Ta5d6ff"Ta5d6ff[Enter] Open [C-e] Peer Info [C-x] Delete [C-r] Sync [C-n] NewTa5d6ff"Tb4b4b4)Tb4b4b4, Ta5d6ff"Ta5d6ffshortcutbarTa5d6ff"Tb4b4b4)
Tff7b72class T56d364ConversationDisplayShortcutsTb4b4b4(Tb4b4b4)Tb4b4b4:
Tff7b72def Tff7b72__init__Tb4b4b4(Tff7b72selfTb4b4b4, Te6edf3appTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffapp Tff7b72= Te6edf3app
Tff7b72selfTff7b72.Td2a8ffwidget Tff7b72= Te6edf3urwidTff7b72.Td2a8ffAttrMapTb4b4b4(Te6edf3urwidTff7b72.Td2a8ffTextTb4b4b4(Ta5d6ff"Ta5d6ff[C-d] Send [C-k] Clear [C-w] Close [C-t] Title [C-p] Purge [C-x] Clear History [C-o] SortTa5d6ff"Tb4b4b4)Tb4b4b4, Ta5d6ff"Ta5d6ffshortcutbarTa5d6ff"Tb4b4b4)
Tff7b72class T56d364ConversationsAreaTb4b4b4(Te6edf3urwidTff7b72.Td2a8ffLineBoxTb4b4b4)Tb4b4b4:
Tff7b72def Td2a8ffkeypressTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3sizeTb4b4b4, Te6edf3keyTb4b4b4)Tb4b4b4:
Tff7b72if Te6edf3key Tff7b72== Ta5d6ff"Ta5d6ffctrl eTa5d6ff"Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffdelegateTff7b72.Td2a8ffedit_selected_in_directoryTb4b4b4(Tb4b4b4)
Tff7b72elif Te6edf3key Tff7b72== Ta5d6ff"Ta5d6ffctrl xTa5d6ff"Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffdelegateTff7b72.Td2a8ffdelete_selected_conversationTb4b4b4(Tb4b4b4)
Tff7b72elif Te6edf3key Tff7b72== Ta5d6ff"Ta5d6ffctrl nTa5d6ff"Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffdelegateTff7b72.Td2a8ffnew_conversationTb4b4b4(Tb4b4b4)
Tff7b72elif Te6edf3key Tff7b72== Ta5d6ff"Ta5d6ffctrl rTa5d6ff"Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffdelegateTff7b72.Td2a8ffsync_conversationsTb4b4b4(Tb4b4b4)
Tff7b72elif Te6edf3key Tff7b72== Ta5d6ff"Ta5d6fftabTa5d6ff"Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffdelegateTff7b72.Td2a8ffappTff7b72.Td2a8ffuiTff7b72.Td2a8ffmain_displayTff7b72.Td2a8ffframeTff7b72.Td2a8ffset_focusTb4b4b4(Ta5d6ff"Ta5d6ffheaderTa5d6ff"Tb4b4b4)
Tff7b72elif Te6edf3key Tff7b72== Ta5d6ff"Ta5d6ffupTa5d6ff" Tff7b72and Tb4b4b4(Tff7b72selfTff7b72.Td2a8ffdelegateTff7b72.Td2a8ffilbTff7b72.Td2a8fffirst_item_is_selectedTb4b4b4(Tb4b4b4) Tff7b72or Tff7b72selfTff7b72.Td2a8ffdelegateTff7b72.Td2a8ffilbTff7b72.Td2a8ffbody_is_emptyTb4b4b4(Tb4b4b4)Tb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffdelegateTff7b72.Td2a8ffappTff7b72.Td2a8ffuiTff7b72.Td2a8ffmain_displayTff7b72.Td2a8ffframeTff7b72.Td2a8ffset_focusTb4b4b4(Ta5d6ff"Ta5d6ffheaderTa5d6ff"Tb4b4b4)
Tff7b72elseTb4b4b4:
Tff7b72return Tffa657superTb4b4b4(Te6edf3ConversationsAreaTb4b4b4, Tff7b72selfTb4b4b4)Tff7b72.Td2a8ffkeypressTb4b4b4(Te6edf3sizeTb4b4b4, Te6edf3keyTb4b4b4)
Tff7b72class T56d364DialogLineBoxTb4b4b4(Te6edf3urwidTff7b72.Td2a8ffLineBoxTb4b4b4)Tb4b4b4:
Tff7b72def Td2a8ffkeypressTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3sizeTb4b4b4, Te6edf3keyTb4b4b4)Tb4b4b4:
Tff7b72if Te6edf3key Tff7b72== Ta5d6ff"Ta5d6ffescTa5d6ff"Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffdelegateTff7b72.Td2a8ffupdate_conversation_listTb4b4b4(Tb4b4b4)
Tff7b72elseTb4b4b4:
Tff7b72return Tffa657superTb4b4b4(Te6edf3DialogLineBoxTb4b4b4, Tff7b72selfTb4b4b4)Tff7b72.Td2a8ffkeypressTb4b4b4(Te6edf3sizeTb4b4b4, Te6edf3keyTb4b4b4)
Tff7b72class T56d364ConversationsDisplayTb4b4b4(Tb4b4b4)Tb4b4b4:
Te6edf3list_width Tff7b72= T79c0ff0.33
Te6edf3cached_conversation_widgets Tff7b72= Tb4b4b4{Tb4b4b4}
Tff7b72def Tff7b72__init__Tb4b4b4(Tff7b72selfTb4b4b4, Te6edf3appTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffapp Tff7b72= Te6edf3app
Tff7b72selfTff7b72.Td2a8ffdialog_open Tff7b72= Tff7b72False
Tff7b72selfTff7b72.Td2a8ffsync_dialog Tff7b72= Tff7b72None
Tff7b72selfTff7b72.Td2a8ffcurrently_displayed_conversation Tff7b72= Tff7b72None
Tff7b72def Td2a8ffdisp_list_shortcutsTb4b4b4(Te6edf3senderTb4b4b4, Te6edf3arg1Tb4b4b4, Te6edf3arg2Tb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffshortcuts_display Tff7b72= Tff7b72selfTff7b72.Td2a8fflist_shortcuts
Tff7b72selfTff7b72.Td2a8ffappTff7b72.Td2a8ffuiTff7b72.Td2a8ffmain_displayTff7b72.Td2a8ffupdate_active_shortcutsTb4b4b4(Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffupdate_listboxTb4b4b4(Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffcolumns_widget Tff7b72= Te6edf3urwidTff7b72.Td2a8ffColumnsTb4b4b4(
Tb4b4b4[
Tb4b4b4(Ta5d6ff"Ta5d6ffweightTa5d6ff"Tb4b4b4, Te6edf3ConversationsDisplayTff7b72.Td2a8fflist_widthTb4b4b4, Tff7b72selfTff7b72.Td2a8fflistboxTb4b4b4)Tb4b4b4,
Tb4b4b4(Ta5d6ff"Ta5d6ffweightTa5d6ff"Tb4b4b4, T79c0ff1Tff7b72-Te6edf3ConversationsDisplayTff7b72.Td2a8fflist_widthTb4b4b4, Tff7b72selfTff7b72.Td2a8ffmake_conversation_widgetTb4b4b4(Tff7b72NoneTb4b4b4)Tb4b4b4)
Tb4b4b4]Tb4b4b4,
Te6edf3dividecharsTff7b72=T79c0ff0Tb4b4b4, Te6edf3focus_columnTff7b72=T79c0ff0Tb4b4b4, Te6edf3box_columnsTff7b72=Tb4b4b4[T79c0ff0Tb4b4b4]
Tb4b4b4)
Tff7b72selfTff7b72.Td2a8fflist_shortcuts Tff7b72= Te6edf3ConversationListDisplayShortcutsTb4b4b4(Tff7b72selfTff7b72.Td2a8ffappTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffeditor_shortcuts Tff7b72= Te6edf3ConversationDisplayShortcutsTb4b4b4(Tff7b72selfTff7b72.Td2a8ffappTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffshortcuts_display Tff7b72= Tff7b72selfTff7b72.Td2a8fflist_shortcuts
Tff7b72selfTff7b72.Td2a8ffwidget Tff7b72= Tff7b72selfTff7b72.Td2a8ffcolumns_widget
Te6edf3nomadnetTff7b72.Td2a8ffConversationTff7b72.Td2a8ffcreated_callback Tff7b72= Tff7b72selfTff7b72.Td2a8ffupdate_conversation_list
Tff7b72def Td2a8fffocus_change_eventTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
T8b949e# This hack corrects buggy styling behaviour in IndicativeListBox
Tff7b72if Tff7b72not Tff7b72selfTff7b72.Td2a8ffdialog_openTb4b4b4:
Te6edf3ilb_position Tff7b72= Tff7b72selfTff7b72.Td2a8ffilbTff7b72.Td2a8ffget_selected_positionTb4b4b4(Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffupdate_conversation_listTb4b4b4(Tb4b4b4)
Tff7b72if Te6edf3ilb_position Tff7b72!= Tff7b72NoneTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffilbTff7b72.Td2a8ffselect_itemTb4b4b4(Te6edf3ilb_positionTb4b4b4)
Tff7b72def Td2a8ffupdate_listboxTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Te6edf3conversation_list_widgets Tff7b72= Tb4b4b4[Tb4b4b4]
Tff7b72for Te6edf3conversation Tff7b72in Tff7b72selfTff7b72.Td2a8ffappTff7b72.Td2a8ffconversationsTb4b4b4(Tb4b4b4)Tb4b4b4:
Te6edf3conversation_list_widgetsTff7b72.Td2a8ffappendTb4b4b4(Tff7b72selfTff7b72.Td2a8ffconversation_list_widgetTb4b4b4(Te6edf3conversationTb4b4b4)Tb4b4b4)
Tff7b72selfTff7b72.Td2a8fflist_widgets Tff7b72= Te6edf3conversation_list_widgets
Tff7b72selfTff7b72.Td2a8ffilb Tff7b72= Te6edf3IndicativeListBoxTb4b4b4(
Tff7b72selfTff7b72.Td2a8fflist_widgetsTb4b4b4,
Te6edf3on_selection_changeTff7b72=Tff7b72selfTff7b72.Td2a8ffconversation_list_selectionTb4b4b4,
Te6edf3initialization_is_selection_changeTff7b72=Tff7b72FalseTb4b4b4,
Te6edf3highlight_offFocusTff7b72=Ta5d6ff"Ta5d6fflist_off_focusTa5d6ff"
Tb4b4b4)
Tff7b72selfTff7b72.Td2a8fflistbox Tff7b72= Te6edf3ConversationsAreaTb4b4b4(Te6edf3urwidTff7b72.Td2a8ffFillerTb4b4b4(Tff7b72selfTff7b72.Td2a8ffilbTb4b4b4, Te6edf3heightTff7b72=Tb4b4b4(Ta5d6ff"Ta5d6ffrelativeTa5d6ff"Tb4b4b4, T79c0ff100Tb4b4b4)Tb4b4b4)Tb4b4b4, Te6edf3titleTff7b72=Ta5d6ff"Ta5d6ffConversationsTa5d6ff"Tb4b4b4)
Tff7b72selfTff7b72.Td2a8fflistboxTff7b72.Td2a8ffdelegate Tff7b72= Tff7b72self
Tff7b72def Td2a8ffdelete_selected_conversationTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffdialog_open Tff7b72= Tff7b72True
Te6edf3source_hash Tff7b72= Tff7b72selfTff7b72.Td2a8ffilbTff7b72.Td2a8ffget_selected_itemTb4b4b4(Tb4b4b4)Tff7b72.Td2a8ffsource_hash
Tff7b72def Td2a8ffdismiss_dialogTb4b4b4(Te6edf3senderTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffupdate_conversation_listTb4b4b4(Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffdialog_open Tff7b72= Tff7b72False
Tff7b72def Td2a8ffconfirmedTb4b4b4(Te6edf3senderTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffdialog_open Tff7b72= Tff7b72False
Tff7b72selfTff7b72.Td2a8ffdelete_conversationTb4b4b4(Te6edf3source_hashTb4b4b4)
Te6edf3nomadnetTff7b72.Td2a8ffConversationTff7b72.Td2a8ffdelete_conversationTb4b4b4(Te6edf3source_hashTb4b4b4, Tff7b72selfTff7b72.Td2a8ffappTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffupdate_conversation_listTb4b4b4(Tb4b4b4)
Te6edf3dialog Tff7b72= Te6edf3DialogLineBoxTb4b4b4(
Te6edf3urwidTff7b72.Td2a8ffPileTb4b4b4(Tb4b4b4[
Te6edf3urwidTff7b72.Td2a8ffTextTb4b4b4(Ta5d6ff"Ta5d6ffDelete conversation withTffea00\nTa5d6ff"Tff7b72+Tff7b72selfTff7b72.Td2a8ffappTff7b72.Td2a8ffdirectoryTff7b72.Td2a8ffsimplest_display_strTb4b4b4(Tffa657bytesTff7b72.Td2a8fffromhexTb4b4b4(Te6edf3source_hashTb4b4b4)Tb4b4b4)Tff7b72+Ta5d6ff"Tffea00\nTa5d6ff"Tb4b4b4, Te6edf3alignTff7b72=Ta5d6ff"Ta5d6ffcenterTa5d6ff"Tb4b4b4)Tb4b4b4,
Te6edf3urwidTff7b72.Td2a8ffColumnsTb4b4b4(Tb4b4b4[Tb4b4b4(Ta5d6ff"Ta5d6ffweightTa5d6ff"Tb4b4b4, T79c0ff0.45Tb4b4b4, Te6edf3urwidTff7b72.Td2a8ffButtonTb4b4b4(Ta5d6ff"Ta5d6ffYesTa5d6ff"Tb4b4b4, Te6edf3on_pressTff7b72=Te6edf3confirmedTb4b4b4)Tb4b4b4)Tb4b4b4, Tb4b4b4(Ta5d6ff"Ta5d6ffweightTa5d6ff"Tb4b4b4, T79c0ff0.1Tb4b4b4, Te6edf3urwidTff7b72.Td2a8ffTextTb4b4b4(Ta5d6ff"Ta5d6ff"Tb4b4b4)Tb4b4b4)Tb4b4b4, Tb4b4b4(Ta5d6ff"Ta5d6ffweightTa5d6ff"Tb4b4b4, T79c0ff0.45Tb4b4b4, Te6edf3urwidTff7b72.Td2a8ffButtonTb4b4b4(Ta5d6ff"Ta5d6ffNoTa5d6ff"Tb4b4b4, Te6edf3on_pressTff7b72=Te6edf3dismiss_dialogTb4b4b4)Tb4b4b4)Tb4b4b4]Tb4b4b4)
Tb4b4b4]Tb4b4b4)Tb4b4b4, Te6edf3titleTff7b72=Ta5d6ff"Ta5d6ff?Ta5d6ff"
Tb4b4b4)
Te6edf3dialogTff7b72.Td2a8ffdelegate Tff7b72= Tff7b72self
Te6edf3bottom Tff7b72= Tff7b72selfTff7b72.Td2a8fflistbox
Te6edf3overlay Tff7b72= Te6edf3urwidTff7b72.Td2a8ffOverlayTb4b4b4(Te6edf3dialogTb4b4b4, Te6edf3bottomTb4b4b4, Te6edf3alignTff7b72=Ta5d6ff"Ta5d6ffcenterTa5d6ff"Tb4b4b4, Te6edf3widthTff7b72=Tb4b4b4(Ta5d6ff"Ta5d6ffrelativeTa5d6ff"Tb4b4b4, T79c0ff100Tb4b4b4)Tb4b4b4, Te6edf3valignTff7b72=Ta5d6ff"Ta5d6ffmiddleTa5d6ff"Tb4b4b4, Te6edf3heightTff7b72=Ta5d6ff"Ta5d6ffpackTa5d6ff"Tb4b4b4, Te6edf3leftTff7b72=T79c0ff2Tb4b4b4, Te6edf3rightTff7b72=T79c0ff2Tb4b4b4)
Te6edf3options Tff7b72= Tff7b72selfTff7b72.Td2a8ffcolumns_widgetTff7b72.Td2a8ffoptionsTb4b4b4(Ta5d6ff"Ta5d6ffweightTa5d6ff"Tb4b4b4, Te6edf3ConversationsDisplayTff7b72.Td2a8fflist_widthTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffcolumns_widgetTff7b72.Td2a8ffcontentsTb4b4b4[T79c0ff0Tb4b4b4] Tff7b72= Tb4b4b4(Te6edf3overlayTb4b4b4, Te6edf3optionsTb4b4b4)
Tff7b72def Td2a8ffedit_selected_in_directoryTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Te6edf3g Tff7b72= Tff7b72selfTff7b72.Td2a8ffappTff7b72.Td2a8ffuiTff7b72.Td2a8ffglyphs
Tff7b72selfTff7b72.Td2a8ffdialog_open Tff7b72= Tff7b72True
Te6edf3source_hash_text Tff7b72= Tff7b72selfTff7b72.Td2a8ffilbTff7b72.Td2a8ffget_selected_itemTb4b4b4(Tb4b4b4)Tff7b72.Td2a8ffsource_hash
Te6edf3display_name Tff7b72= Tff7b72selfTff7b72.Td2a8ffilbTff7b72.Td2a8ffget_selected_itemTb4b4b4(Tb4b4b4)Tff7b72.Td2a8ffdisplay_name
Tff7b72if Te6edf3display_name Tff7b72== Tff7b72NoneTb4b4b4:
Te6edf3display_name Tff7b72= Ta5d6ff"Ta5d6ff"
Te6edf3e_id Tff7b72= Te6edf3urwidTff7b72.Td2a8ffEditTb4b4b4(Te6edf3captionTff7b72=Ta5d6ff"Ta5d6ffAddr : Ta5d6ff"Tb4b4b4,Te6edf3edit_textTff7b72=Te6edf3source_hash_textTb4b4b4)
Te6edf3t_id Tff7b72= Te6edf3urwidTff7b72.Td2a8ffTextTb4b4b4(Ta5d6ff"Ta5d6ffAddr : Ta5d6ff"Tff7b72+Te6edf3source_hash_textTb4b4b4)
Te6edf3e_name Tff7b72= Te6edf3urwidTff7b72.Td2a8ffEditTb4b4b4(Te6edf3captionTff7b72=Ta5d6ff"Ta5d6ffName : Ta5d6ff"Tb4b4b4,Te6edf3edit_textTff7b72=Te6edf3display_nameTb4b4b4)
Te6edf3selected_id_widget Tff7b72= Te6edf3t_id
Te6edf3untrusted_selected Tff7b72= Tff7b72False
Te6edf3unknown_selected Tff7b72= Tff7b72True
Te6edf3trusted_selected Tff7b72= Tff7b72False
Te6edf3direct_selected Tff7b72= Tff7b72True
Te6edf3propagated_selected Tff7b72= Tff7b72False
Tff7b72tryTb4b4b4:
Tff7b72if Tff7b72selfTff7b72.Td2a8ffappTff7b72.Td2a8ffdirectoryTff7b72.Td2a8fffindTb4b4b4(Tffa657bytesTff7b72.Td2a8fffromhexTb4b4b4(Te6edf3source_hash_textTb4b4b4)Tb4b4b4)Tb4b4b4:
Te6edf3trust_level Tff7b72= Tff7b72selfTff7b72.Td2a8ffappTff7b72.Td2a8ffdirectoryTff7b72.Td2a8fftrust_levelTb4b4b4(Tffa657bytesTff7b72.Td2a8fffromhexTb4b4b4(Te6edf3source_hash_textTb4b4b4)Tb4b4b4)
Tff7b72if Te6edf3trust_level Tff7b72== Te6edf3DirectoryEntryTff7b72.Td2a8ffUNTRUSTEDTb4b4b4:
Te6edf3untrusted_selected Tff7b72= Tff7b72True
Te6edf3unknown_selected Tff7b72= Tff7b72False
Te6edf3trusted_selected Tff7b72= Tff7b72False
Tff7b72elif Te6edf3trust_level Tff7b72== Te6edf3DirectoryEntryTff7b72.Td2a8ffUNKNOWNTb4b4b4:
Te6edf3untrusted_selected Tff7b72= Tff7b72False
Te6edf3unknown_selected Tff7b72= Tff7b72True
Te6edf3trusted_selected Tff7b72= Tff7b72False
Tff7b72elif Te6edf3trust_level Tff7b72== Te6edf3DirectoryEntryTff7b72.Td2a8ffTRUSTEDTb4b4b4:
Te6edf3untrusted_selected Tff7b72= Tff7b72False
Te6edf3unknown_selected Tff7b72= Tff7b72False
Te6edf3trusted_selected Tff7b72= Tff7b72True
Tff7b72if Tff7b72selfTff7b72.Td2a8ffappTff7b72.Td2a8ffdirectoryTff7b72.Td2a8ffpreferred_deliveryTb4b4b4(Tffa657bytesTff7b72.Td2a8fffromhexTb4b4b4(Te6edf3source_hash_textTb4b4b4)Tb4b4b4) Tff7b72== Te6edf3DirectoryEntryTff7b72.Td2a8ffPROPAGATEDTb4b4b4:
Te6edf3direct_selected Tff7b72= Tff7b72False
Te6edf3propagated_selected Tff7b72= Tff7b72True
Tff7b72except Tf85149Exception Tff7b72as Te6edf3eTb4b4b4:
Tff7b72pass
Te6edf3trust_button_group Tff7b72= Tb4b4b4[Tb4b4b4]
Te6edf3r_untrusted Tff7b72= Te6edf3urwidTff7b72.Td2a8ffRadioButtonTb4b4b4(Te6edf3trust_button_groupTb4b4b4, Ta5d6ff"Ta5d6ffUntrustedTa5d6ff"Tb4b4b4, Te6edf3stateTff7b72=Te6edf3untrusted_selectedTb4b4b4)
Te6edf3r_unknown Tff7b72= Te6edf3urwidTff7b72.Td2a8ffRadioButtonTb4b4b4(Te6edf3trust_button_groupTb4b4b4, Ta5d6ff"Ta5d6ffUnknownTa5d6ff"Tb4b4b4, Te6edf3stateTff7b72=Te6edf3unknown_selectedTb4b4b4)
Te6edf3r_trusted Tff7b72= Te6edf3urwidTff7b72.Td2a8ffRadioButtonTb4b4b4(Te6edf3trust_button_groupTb4b4b4, Ta5d6ff"Ta5d6ffTrustedTa5d6ff"Tb4b4b4, Te6edf3stateTff7b72=Te6edf3trusted_selectedTb4b4b4)
Te6edf3method_button_group Tff7b72= Tb4b4b4[Tb4b4b4]
Te6edf3r_direct Tff7b72= Te6edf3urwidTff7b72.Td2a8ffRadioButtonTb4b4b4(Te6edf3method_button_groupTb4b4b4, Ta5d6ff"Ta5d6ffDeliver directlyTa5d6ff"Tb4b4b4, Te6edf3stateTff7b72=Te6edf3direct_selectedTb4b4b4)
Te6edf3r_propagated Tff7b72= Te6edf3urwidTff7b72.Td2a8ffRadioButtonTb4b4b4(Te6edf3method_button_groupTb4b4b4, Ta5d6ff"Ta5d6ffUse propagation nodesTa5d6ff"Tb4b4b4, Te6edf3stateTff7b72=Te6edf3propagated_selectedTb4b4b4)
Tff7b72def Td2a8ffdismiss_dialogTb4b4b4(Te6edf3senderTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffupdate_conversation_listTb4b4b4(Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffdialog_open Tff7b72= Tff7b72False
Tff7b72def Td2a8ffconfirmedTb4b4b4(Te6edf3senderTb4b4b4)Tb4b4b4:
Tff7b72tryTb4b4b4:
Te6edf3display_name Tff7b72= Te6edf3e_nameTff7b72.Td2a8ffget_edit_textTb4b4b4(Tb4b4b4)
Te6edf3source_hash Tff7b72= Tffa657bytesTff7b72.Td2a8fffromhexTb4b4b4(Te6edf3e_idTff7b72.Td2a8ffget_edit_textTb4b4b4(Tb4b4b4)Tb4b4b4)
Te6edf3trust_level Tff7b72= Te6edf3DirectoryEntryTff7b72.Td2a8ffUNTRUSTED
Tff7b72if Te6edf3r_unknownTff7b72.Td2a8ffstate Tff7b72== Tff7b72TrueTb4b4b4:
Te6edf3trust_level Tff7b72= Te6edf3DirectoryEntryTff7b72.Td2a8ffUNKNOWN
Tff7b72elif Te6edf3r_trustedTff7b72.Td2a8ffstate Tff7b72== Tff7b72TrueTb4b4b4:
Te6edf3trust_level Tff7b72= Te6edf3DirectoryEntryTff7b72.Td2a8ffTRUSTED
Te6edf3delivery Tff7b72= Te6edf3DirectoryEntryTff7b72.Td2a8ffDIRECT
Tff7b72if Te6edf3r_propagatedTff7b72.Td2a8ffstate Tff7b72== Tff7b72TrueTb4b4b4:
Te6edf3delivery Tff7b72= Te6edf3DirectoryEntryTff7b72.Td2a8ffPROPAGATED
Te6edf3entry Tff7b72= Te6edf3DirectoryEntryTb4b4b4(Te6edf3source_hashTb4b4b4, Te6edf3display_nameTb4b4b4, Te6edf3trust_levelTb4b4b4, Te6edf3preferred_deliveryTff7b72=Te6edf3deliveryTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffappTff7b72.Td2a8ffdirectoryTff7b72.Td2a8ffrememberTb4b4b4(Te6edf3entryTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffupdate_conversation_listTb4b4b4(Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffdialog_open Tff7b72= Tff7b72False
Tff7b72selfTff7b72.Td2a8ffappTff7b72.Td2a8ffuiTff7b72.Td2a8ffmain_displayTff7b72.Td2a8ffsub_displaysTff7b72.Td2a8ffnetwork_displayTff7b72.Td2a8ffdirectory_change_callbackTb4b4b4(Tb4b4b4)
Tff7b72except Tf85149Exception Tff7b72as Te6edf3eTb4b4b4:
Te6edf3RNSTff7b72.Td2a8fflogTb4b4b4(Ta5d6ff"Ta5d6ffCould not save directory entry. The contained exception was: Ta5d6ff"Tff7b72+Tffa657strTb4b4b4(Te6edf3eTb4b4b4)Tb4b4b4, Te6edf3RNSTff7b72.Td2a8ffLOG_VERBOSETb4b4b4)
Tff7b72if Tff7b72not Te6edf3dialog_pileTff7b72.Td2a8fferror_displayTb4b4b4:
Te6edf3dialog_pileTff7b72.Td2a8fferror_display Tff7b72= Tff7b72True
Te6edf3options Tff7b72= Te6edf3dialog_pileTff7b72.Td2a8ffoptionsTb4b4b4(Te6edf3height_typeTff7b72=Ta5d6ff"Ta5d6ffpackTa5d6ff"Tb4b4b4)
Te6edf3dialog_pileTff7b72.Td2a8ffcontentsTff7b72.Td2a8ffappendTb4b4b4(Tb4b4b4(Te6edf3urwidTff7b72.Td2a8ffTextTb4b4b4(Ta5d6ff"Ta5d6ff"Tb4b4b4)Tb4b4b4, Te6edf3optionsTb4b4b4)Tb4b4b4)
Te6edf3dialog_pileTff7b72.Td2a8ffcontentsTff7b72.Td2a8ffappendTb4b4b4(Tb4b4b4(Te6edf3urwidTff7b72.Td2a8ffTextTb4b4b4(Tb4b4b4(Ta5d6ff"Ta5d6fferror_textTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffCould not save entry. Check your input.Ta5d6ff"Tb4b4b4)Tb4b4b4, Te6edf3alignTff7b72=Ta5d6ff"Ta5d6ffcenterTa5d6ff"Tb4b4b4)Tb4b4b4, Te6edf3optionsTb4b4b4)Tb4b4b4)
Te6edf3source_is_known Tff7b72= Tff7b72selfTff7b72.Td2a8ffappTff7b72.Td2a8ffdirectoryTff7b72.Td2a8ffis_knownTb4b4b4(Tffa657bytesTff7b72.Td2a8fffromhexTb4b4b4(Te6edf3source_hash_textTb4b4b4)Tb4b4b4)
Tff7b72if Te6edf3source_is_knownTb4b4b4:
Te6edf3known_section Tff7b72= Te6edf3urwidTff7b72.Td2a8ffDividerTb4b4b4(Te6edf3gTb4b4b4[Ta5d6ff"Ta5d6ffdivider1Ta5d6ff"Tb4b4b4]Tb4b4b4)
Tff7b72elseTb4b4b4:
Tff7b72def Td2a8ffquery_actionTb4b4b4(Te6edf3senderTb4b4b4, Te6edf3user_dataTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffclose_conversation_by_hashTb4b4b4(Te6edf3user_dataTb4b4b4)
Te6edf3nomadnetTff7b72.Td2a8ffConversationTff7b72.Td2a8ffquery_for_peerTb4b4b4(Te6edf3user_dataTb4b4b4)
Te6edf3options Tff7b72= Te6edf3dialog_pileTff7b72.Td2a8ffoptionsTb4b4b4(Te6edf3height_typeTff7b72=Ta5d6ff"Ta5d6ffpackTa5d6ff"Tb4b4b4)
Te6edf3dialog_pileTff7b72.Td2a8ffcontents Tff7b72= Tb4b4b4[
Tb4b4b4(Te6edf3urwidTff7b72.Td2a8ffTextTb4b4b4(Ta5d6ff"Ta5d6ffQuery sentTa5d6ff"Tb4b4b4)Tb4b4b4, Te6edf3optionsTb4b4b4)Tb4b4b4,
Tb4b4b4(Te6edf3urwidTff7b72.Td2a8ffButtonTb4b4b4(Ta5d6ff"Ta5d6ffOKTa5d6ff"Tb4b4b4, Te6edf3on_pressTff7b72=Te6edf3dismiss_dialogTb4b4b4)Tb4b4b4, Te6edf3optionsTb4b4b4)
Tb4b4b4]
Te6edf3query_button Tff7b72= Te6edf3urwidTff7b72.Td2a8ffButtonTb4b4b4(Ta5d6ff"Ta5d6ffQuery network for keysTa5d6ff"Tb4b4b4, Te6edf3on_pressTff7b72=Te6edf3query_actionTb4b4b4, Te6edf3user_dataTff7b72=Te6edf3source_hash_textTb4b4b4)
Te6edf3known_section Tff7b72= Te6edf3urwidTff7b72.Td2a8ffPileTb4b4b4(Tb4b4b4[Te6edf3urwidTff7b72.Td2a8ffDividerTb4b4b4(Te6edf3gTb4b4b4[Ta5d6ff"Ta5d6ffdivider1Ta5d6ff"Tb4b4b4]Tb4b4b4)Tb4b4b4, Te6edf3urwidTff7b72.Td2a8ffTextTb4b4b4(Te6edf3gTb4b4b4[Ta5d6ff"Ta5d6ffinfoTa5d6ff"Tb4b4b4]Tff7b72+Ta5d6ff"Tffea00\nTa5d6ff"Tb4b4b4, Te6edf3alignTff7b72=Ta5d6ff"Ta5d6ffcenterTa5d6ff"Tb4b4b4)Tb4b4b4, Te6edf3urwidTff7b72.Td2a8ffTextTb4b4b4(Ta5d6ff"Ta5d6ffThe identity of this peer is not known, and you cannot currently communicate.Tffea00\nTa5d6ff"Tb4b4b4, Te6edf3alignTff7b72=Ta5d6ff"Ta5d6ffcenterTa5d6ff"Tb4b4b4)Tb4b4b4, Te6edf3query_buttonTb4b4b4, Te6edf3urwidTff7b72.Td2a8ffDividerTb4b4b4(Te6edf3gTb4b4b4[Ta5d6ff"Ta5d6ffdivider1Ta5d6ff"Tb4b4b4]Tb4b4b4)Tb4b4b4]Tb4b4b4)
Te6edf3dialog_pile Tff7b72= Te6edf3urwidTff7b72.Td2a8ffPileTb4b4b4(Tb4b4b4[
Te6edf3selected_id_widgetTb4b4b4,
Te6edf3e_nameTb4b4b4,
Te6edf3urwidTff7b72.Td2a8ffDividerTb4b4b4(Te6edf3gTb4b4b4[Ta5d6ff"Ta5d6ffdivider1Ta5d6ff"Tb4b4b4]Tb4b4b4)Tb4b4b4,
Te6edf3r_untrustedTb4b4b4,
Te6edf3r_unknownTb4b4b4,
Te6edf3r_trustedTb4b4b4,
Te6edf3urwidTff7b72.Td2a8ffDividerTb4b4b4(Te6edf3gTb4b4b4[Ta5d6ff"Ta5d6ffdivider1Ta5d6ff"Tb4b4b4]Tb4b4b4)Tb4b4b4,
Te6edf3r_directTb4b4b4,
Te6edf3r_propagatedTb4b4b4,
Te6edf3known_sectionTb4b4b4,
Te6edf3urwidTff7b72.Td2a8ffColumnsTb4b4b4(Tb4b4b4[Tb4b4b4(Ta5d6ff"Ta5d6ffweightTa5d6ff"Tb4b4b4, T79c0ff0.45Tb4b4b4, Te6edf3urwidTff7b72.Td2a8ffButtonTb4b4b4(Ta5d6ff"Ta5d6ffSaveTa5d6ff"Tb4b4b4, Te6edf3on_pressTff7b72=Te6edf3confirmedTb4b4b4)Tb4b4b4)Tb4b4b4, Tb4b4b4(Ta5d6ff"Ta5d6ffweightTa5d6ff"Tb4b4b4, T79c0ff0.1Tb4b4b4, Te6edf3urwidTff7b72.Td2a8ffTextTb4b4b4(Ta5d6ff"Ta5d6ff"Tb4b4b4)Tb4b4b4)Tb4b4b4, Tb4b4b4(Ta5d6ff"Ta5d6ffweightTa5d6ff"Tb4b4b4, T79c0ff0.45Tb4b4b4, Te6edf3urwidTff7b72.Td2a8ffButtonTb4b4b4(Ta5d6ff"Ta5d6ffBackTa5d6ff"Tb4b4b4, Te6edf3on_pressTff7b72=Te6edf3dismiss_dialogTb4b4b4)Tb4b4b4)Tb4b4b4]Tb4b4b4)
Tb4b4b4]Tb4b4b4)
Te6edf3dialog_pileTff7b72.Td2a8fferror_display Tff7b72= Tff7b72False
Te6edf3dialog Tff7b72= Te6edf3DialogLineBoxTb4b4b4(Te6edf3dialog_pileTb4b4b4, Te6edf3titleTff7b72=Ta5d6ff"Ta5d6ffPeer InfoTa5d6ff"Tb4b4b4)
Te6edf3dialogTff7b72.Td2a8ffdelegate Tff7b72= Tff7b72self
Te6edf3bottom Tff7b72= Tff7b72selfTff7b72.Td2a8fflistbox
Te6edf3overlay Tff7b72= Te6edf3urwidTff7b72.Td2a8ffOverlayTb4b4b4(Te6edf3dialogTb4b4b4, Te6edf3bottomTb4b4b4, Te6edf3alignTff7b72=Ta5d6ff"Ta5d6ffcenterTa5d6ff"Tb4b4b4, Te6edf3widthTff7b72=Tb4b4b4(Ta5d6ff"Ta5d6ffrelativeTa5d6ff"Tb4b4b4, T79c0ff100Tb4b4b4)Tb4b4b4, Te6edf3valignTff7b72=Ta5d6ff"Ta5d6ffmiddleTa5d6ff"Tb4b4b4, Te6edf3heightTff7b72=Ta5d6ff"Ta5d6ffpackTa5d6ff"Tb4b4b4, Te6edf3leftTff7b72=T79c0ff2Tb4b4b4, Te6edf3rightTff7b72=T79c0ff2Tb4b4b4)
Te6edf3options Tff7b72= Tff7b72selfTff7b72.Td2a8ffcolumns_widgetTff7b72.Td2a8ffoptionsTb4b4b4(Ta5d6ff"Ta5d6ffweightTa5d6ff"Tb4b4b4, Te6edf3ConversationsDisplayTff7b72.Td2a8fflist_widthTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffcolumns_widgetTff7b72.Td2a8ffcontentsTb4b4b4[T79c0ff0Tb4b4b4] Tff7b72= Tb4b4b4(Te6edf3overlayTb4b4b4, Te6edf3optionsTb4b4b4)
Tff7b72def Td2a8ffnew_conversationTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffdialog_open Tff7b72= Tff7b72True
Te6edf3source_hash Tff7b72= Ta5d6ff"Ta5d6ff"
Te6edf3display_name Tff7b72= Ta5d6ff"Ta5d6ff"
Te6edf3e_id Tff7b72= Te6edf3urwidTff7b72.Td2a8ffEditTb4b4b4(Te6edf3captionTff7b72=Ta5d6ff"Ta5d6ffAddr : Ta5d6ff"Tb4b4b4,Te6edf3edit_textTff7b72=Te6edf3source_hashTb4b4b4)
Te6edf3e_name Tff7b72= Te6edf3urwidTff7b72.Td2a8ffEditTb4b4b4(Te6edf3captionTff7b72=Ta5d6ff"Ta5d6ffName : Ta5d6ff"Tb4b4b4,Te6edf3edit_textTff7b72=Te6edf3display_nameTb4b4b4)
Te6edf3trust_button_group Tff7b72= Tb4b4b4[Tb4b4b4]
Te6edf3r_untrusted Tff7b72= Te6edf3urwidTff7b72.Td2a8ffRadioButtonTb4b4b4(Te6edf3trust_button_groupTb4b4b4, Ta5d6ff"Ta5d6ffUntrustedTa5d6ff"Tb4b4b4)
Te6edf3r_unknown Tff7b72= Te6edf3urwidTff7b72.Td2a8ffRadioButtonTb4b4b4(Te6edf3trust_button_groupTb4b4b4, Ta5d6ff"Ta5d6ffUnknownTa5d6ff"Tb4b4b4, Te6edf3stateTff7b72=Tff7b72TrueTb4b4b4)
Te6edf3r_trusted Tff7b72= Te6edf3urwidTff7b72.Td2a8ffRadioButtonTb4b4b4(Te6edf3trust_button_groupTb4b4b4, Ta5d6ff"Ta5d6ffTrustedTa5d6ff"Tb4b4b4)
Tff7b72def Td2a8ffdismiss_dialogTb4b4b4(Te6edf3senderTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffupdate_conversation_listTb4b4b4(Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffdialog_open Tff7b72= Tff7b72False
Tff7b72def Td2a8ffconfirmedTb4b4b4(Te6edf3senderTb4b4b4)Tb4b4b4:
Tff7b72tryTb4b4b4:
Te6edf3existing_conversations Tff7b72= Te6edf3nomadnetTff7b72.Td2a8ffConversationTff7b72.Td2a8ffconversation_listTb4b4b4(Tff7b72selfTff7b72.Td2a8ffappTb4b4b4)
Te6edf3display_name Tff7b72= Te6edf3e_nameTff7b72.Td2a8ffget_edit_textTb4b4b4(Tb4b4b4)
Te6edf3source_hash_text Tff7b72= Te6edf3e_idTff7b72.Td2a8ffget_edit_textTb4b4b4(Tb4b4b4)
Te6edf3source_hash Tff7b72= Tffa657bytesTff7b72.Td2a8fffromhexTb4b4b4(Te6edf3source_hash_textTb4b4b4)
Te6edf3trust_level Tff7b72= Te6edf3DirectoryEntryTff7b72.Td2a8ffUNTRUSTED
Tff7b72if Te6edf3r_unknownTff7b72.Td2a8ffstate Tff7b72== Tff7b72TrueTb4b4b4:
Te6edf3trust_level Tff7b72= Te6edf3DirectoryEntryTff7b72.Td2a8ffUNKNOWN
Tff7b72elif Te6edf3r_trustedTff7b72.Td2a8ffstate Tff7b72== Tff7b72TrueTb4b4b4:
Te6edf3trust_level Tff7b72= Te6edf3DirectoryEntryTff7b72.Td2a8ffTRUSTED
Tff7b72if Tff7b72not Te6edf3source_hash Tff7b72in Tb4b4b4[Te6edf3cTb4b4b4[T79c0ff0Tb4b4b4] Tff7b72for Te6edf3c Tff7b72in Te6edf3existing_conversationsTb4b4b4]Tb4b4b4:
Te6edf3entry Tff7b72= Te6edf3DirectoryEntryTb4b4b4(Te6edf3source_hashTb4b4b4, Te6edf3display_nameTb4b4b4, Te6edf3trust_levelTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffappTff7b72.Td2a8ffdirectoryTff7b72.Td2a8ffrememberTb4b4b4(Te6edf3entryTb4b4b4)
Te6edf3new_conversation Tff7b72= Te6edf3nomadnetTff7b72.Td2a8ffConversationTb4b4b4(Te6edf3source_hash_textTb4b4b4, Te6edf3nomadnetTff7b72.Td2a8ffNomadNetworkAppTff7b72.Td2a8ffget_shared_instanceTb4b4b4(Tb4b4b4)Tb4b4b4, Te6edf3initiatorTff7b72=Tff7b72TrueTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffupdate_conversation_listTb4b4b4(Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffdisplay_conversationTb4b4b4(Te6edf3source_hash_textTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffdialog_open Tff7b72= Tff7b72False
Tff7b72except Tf85149Exception Tff7b72as Te6edf3eTb4b4b4:
Te6edf3RNSTff7b72.Td2a8fflogTb4b4b4(Ta5d6ff"Ta5d6ffCould not start conversation. The contained exception was: Ta5d6ff"Tff7b72+Tffa657strTb4b4b4(Te6edf3eTb4b4b4)Tb4b4b4, Te6edf3RNSTff7b72.Td2a8ffLOG_VERBOSETb4b4b4)
Tff7b72if Tff7b72not Te6edf3dialog_pileTff7b72.Td2a8fferror_displayTb4b4b4:
Te6edf3dialog_pileTff7b72.Td2a8fferror_display Tff7b72= Tff7b72True
Te6edf3options Tff7b72= Te6edf3dialog_pileTff7b72.Td2a8ffoptionsTb4b4b4(Te6edf3height_typeTff7b72=Ta5d6ff"Ta5d6ffpackTa5d6ff"Tb4b4b4)
Te6edf3dialog_pileTff7b72.Td2a8ffcontentsTff7b72.Td2a8ffappendTb4b4b4(Tb4b4b4(Te6edf3urwidTff7b72.Td2a8ffTextTb4b4b4(Ta5d6ff"Ta5d6ff"Tb4b4b4)Tb4b4b4, Te6edf3optionsTb4b4b4)Tb4b4b4)
Te6edf3dialog_pileTff7b72.Td2a8ffcontentsTff7b72.Td2a8ffappendTb4b4b4(Tb4b4b4(Te6edf3urwidTff7b72.Td2a8ffTextTb4b4b4(Tb4b4b4(Ta5d6ff"Ta5d6fferror_textTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffCould not start conversation. Check your input.Ta5d6ff"Tb4b4b4)Tb4b4b4, Te6edf3alignTff7b72=Ta5d6ff"Ta5d6ffcenterTa5d6ff"Tb4b4b4)Tb4b4b4, Te6edf3optionsTb4b4b4)Tb4b4b4)
Te6edf3dialog_pile Tff7b72= Te6edf3urwidTff7b72.Td2a8ffPileTb4b4b4(Tb4b4b4[
Te6edf3e_idTb4b4b4,
Te6edf3e_nameTb4b4b4,
Te6edf3urwidTff7b72.Td2a8ffTextTb4b4b4(Ta5d6ff"Ta5d6ff"Tb4b4b4)Tb4b4b4,
Te6edf3r_untrustedTb4b4b4,
Te6edf3r_unknownTb4b4b4,
Te6edf3r_trustedTb4b4b4,
Te6edf3urwidTff7b72.Td2a8ffTextTb4b4b4(Ta5d6ff"Ta5d6ff"Tb4b4b4)Tb4b4b4,
Te6edf3urwidTff7b72.Td2a8ffColumnsTb4b4b4(Tb4b4b4[Tb4b4b4(Ta5d6ff"Ta5d6ffweightTa5d6ff"Tb4b4b4, T79c0ff0.45Tb4b4b4, Te6edf3urwidTff7b72.Td2a8ffButtonTb4b4b4(Ta5d6ff"Ta5d6ffCreateTa5d6ff"Tb4b4b4, Te6edf3on_pressTff7b72=Te6edf3confirmedTb4b4b4)Tb4b4b4)Tb4b4b4, Tb4b4b4(Ta5d6ff"Ta5d6ffweightTa5d6ff"Tb4b4b4, T79c0ff0.1Tb4b4b4, Te6edf3urwidTff7b72.Td2a8ffTextTb4b4b4(Ta5d6ff"Ta5d6ff"Tb4b4b4)Tb4b4b4)Tb4b4b4, Tb4b4b4(Ta5d6ff"Ta5d6ffweightTa5d6ff"Tb4b4b4, T79c0ff0.45Tb4b4b4, Te6edf3urwidTff7b72.Td2a8ffButtonTb4b4b4(Ta5d6ff"Ta5d6ffBackTa5d6ff"Tb4b4b4, Te6edf3on_pressTff7b72=Te6edf3dismiss_dialogTb4b4b4)Tb4b4b4)Tb4b4b4]Tb4b4b4)
Tb4b4b4]Tb4b4b4)
Te6edf3dialog_pileTff7b72.Td2a8fferror_display Tff7b72= Tff7b72False
Te6edf3dialog Tff7b72= Te6edf3DialogLineBoxTb4b4b4(Te6edf3dialog_pileTb4b4b4, Te6edf3titleTff7b72=Ta5d6ff"Ta5d6ffNew ConversationTa5d6ff"Tb4b4b4)
Te6edf3dialogTff7b72.Td2a8ffdelegate Tff7b72= Tff7b72self
Te6edf3bottom Tff7b72= Tff7b72selfTff7b72.Td2a8fflistbox
Te6edf3overlay Tff7b72= Te6edf3urwidTff7b72.Td2a8ffOverlayTb4b4b4(Te6edf3dialogTb4b4b4, Te6edf3bottomTb4b4b4, Te6edf3alignTff7b72=Ta5d6ff"Ta5d6ffcenterTa5d6ff"Tb4b4b4, Te6edf3widthTff7b72=Tb4b4b4(Ta5d6ff"Ta5d6ffrelativeTa5d6ff"Tb4b4b4, T79c0ff100Tb4b4b4)Tb4b4b4, Te6edf3valignTff7b72=Ta5d6ff"Ta5d6ffmiddleTa5d6ff"Tb4b4b4, Te6edf3heightTff7b72=Ta5d6ff"Ta5d6ffpackTa5d6ff"Tb4b4b4, Te6edf3leftTff7b72=T79c0ff2Tb4b4b4, Te6edf3rightTff7b72=T79c0ff2Tb4b4b4)
Te6edf3options Tff7b72= Tff7b72selfTff7b72.Td2a8ffcolumns_widgetTff7b72.Td2a8ffoptionsTb4b4b4(Ta5d6ff"Ta5d6ffweightTa5d6ff"Tb4b4b4, Te6edf3ConversationsDisplayTff7b72.Td2a8fflist_widthTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffcolumns_widgetTff7b72.Td2a8ffcontentsTb4b4b4[T79c0ff0Tb4b4b4] Tff7b72= Tb4b4b4(Te6edf3overlayTb4b4b4, Te6edf3optionsTb4b4b4)
Tff7b72def Td2a8ffdelete_conversationTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3source_hashTb4b4b4)Tb4b4b4:
Tff7b72if Te6edf3source_hash Tff7b72in Te6edf3ConversationsDisplayTff7b72.Td2a8ffcached_conversation_widgetsTb4b4b4:
Te6edf3conversation Tff7b72= Te6edf3ConversationsDisplayTff7b72.Td2a8ffcached_conversation_widgetsTb4b4b4[Te6edf3source_hashTb4b4b4]
Tff7b72selfTff7b72.Td2a8ffclose_conversationTb4b4b4(Te6edf3conversationTb4b4b4)
Tff7b72def Td2a8ffsync_conversationsTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Te6edf3g Tff7b72= Tff7b72selfTff7b72.Td2a8ffappTff7b72.Td2a8ffuiTff7b72.Td2a8ffglyphs
Tff7b72selfTff7b72.Td2a8ffdialog_open Tff7b72= Tff7b72True
Tff7b72def Td2a8ffdismiss_dialogTb4b4b4(Te6edf3senderTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffdialog_open Tff7b72= Tff7b72False
Tff7b72selfTff7b72.Td2a8ffsync_dialog Tff7b72= Tff7b72None
Tff7b72selfTff7b72.Td2a8ffupdate_conversation_listTb4b4b4(Tb4b4b4)
Tff7b72if Tff7b72selfTff7b72.Td2a8ffappTff7b72.Td2a8ffmessage_routerTff7b72.Td2a8ffpropagation_transfer_state Tff7b72== Te6edf3LXMFTff7b72.Td2a8ffLXMRouterTff7b72.Td2a8ffPR_COMPLETETb4b4b4:
Tff7b72selfTff7b72.Td2a8ffappTff7b72.Td2a8ffcancel_lxmf_syncTb4b4b4(Tb4b4b4)
Te6edf3max_messages_group Tff7b72= Tb4b4b4[Tb4b4b4]
Te6edf3r_mall Tff7b72= Te6edf3urwidTff7b72.Td2a8ffRadioButtonTb4b4b4(Te6edf3max_messages_groupTb4b4b4, Ta5d6ff"Ta5d6ffDownload allTa5d6ff"Tb4b4b4, Te6edf3stateTff7b72=Tff7b72TrueTb4b4b4)
Te6edf3r_mlim Tff7b72= Te6edf3urwidTff7b72.Td2a8ffRadioButtonTb4b4b4(Te6edf3max_messages_groupTb4b4b4, Ta5d6ff"Ta5d6ffLimit toTa5d6ff"Tb4b4b4, Te6edf3stateTff7b72=Tff7b72FalseTb4b4b4)
Te6edf3ie_lim Tff7b72= Te6edf3urwidTff7b72.Td2a8ffIntEditTb4b4b4(Ta5d6ff"Ta5d6ff"Tb4b4b4, T79c0ff5Tb4b4b4)
Te6edf3rbs Tff7b72= Te6edf3urwidTff7b72.Td2a8ffGridFlowTb4b4b4(Tb4b4b4[Te6edf3r_mlimTb4b4b4, Te6edf3ie_limTb4b4b4]Tb4b4b4, T79c0ff12Tb4b4b4, T79c0ff1Tb4b4b4, T79c0ff0Tb4b4b4, Te6edf3alignTff7b72=Ta5d6ff"Ta5d6ffleftTa5d6ff"Tb4b4b4)
Tff7b72def Td2a8ffsync_nowTb4b4b4(Te6edf3senderTb4b4b4)Tb4b4b4:
Te6edf3limit Tff7b72= Tff7b72None
Tff7b72if Te6edf3r_mlimTff7b72.Td2a8ffget_stateTb4b4b4(Tb4b4b4)Tb4b4b4:
Te6edf3limit Tff7b72= Te6edf3ie_limTff7b72.Td2a8ffvalueTb4b4b4(Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffappTff7b72.Td2a8ffrequest_lxmf_syncTb4b4b4(Te6edf3limitTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffupdate_sync_dialogTb4b4b4(Tb4b4b4)
Tff7b72def Td2a8ffcancel_syncTb4b4b4(Te6edf3senderTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffappTff7b72.Td2a8ffcancel_lxmf_syncTb4b4b4(Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffupdate_sync_dialogTb4b4b4(Tb4b4b4)
Te6edf3cancel_button Tff7b72= Te6edf3urwidTff7b72.Td2a8ffButtonTb4b4b4(Ta5d6ff"Ta5d6ffCloseTa5d6ff"Tb4b4b4, Te6edf3on_pressTff7b72=Te6edf3dismiss_dialogTb4b4b4)
Te6edf3sync_progress Tff7b72= Te6edf3SyncProgressBarTb4b4b4(Ta5d6ff"Ta5d6ffprogress_emptyTa5d6ff" Tb4b4b4, Ta5d6ff"Ta5d6ffprogress_fullTa5d6ff"Tb4b4b4, Te6edf3currentTff7b72=Tff7b72selfTff7b72.Td2a8ffappTff7b72.Td2a8ffget_sync_progressTb4b4b4(Tb4b4b4)Tb4b4b4, Te6edf3doneTff7b72=T79c0ff1.0Tb4b4b4, Te6edf3sattTff7b72=Tff7b72NoneTb4b4b4)
Te6edf3real_sync_button Tff7b72= Te6edf3urwidTff7b72.Td2a8ffButtonTb4b4b4(Ta5d6ff"Ta5d6ffSync NowTa5d6ff"Tb4b4b4, Te6edf3on_pressTff7b72=Te6edf3sync_nowTb4b4b4)
Te6edf3hidden_sync_button Tff7b72= Te6edf3urwidTff7b72.Td2a8ffButtonTb4b4b4(Ta5d6ff"Ta5d6ffCancel SyncTa5d6ff"Tb4b4b4, Te6edf3on_pressTff7b72=Te6edf3cancel_syncTb4b4b4)
Tff7b72if Tff7b72selfTff7b72.Td2a8ffappTff7b72.Td2a8ffget_sync_statusTb4b4b4(Tb4b4b4) Tff7b72== Ta5d6ff"Ta5d6ffIdleTa5d6ff" Tff7b72or Tff7b72selfTff7b72.Td2a8ffappTff7b72.Td2a8ffmessage_routerTff7b72.Td2a8ffpropagation_transfer_state Tff7b72== Te6edf3LXMFTff7b72.Td2a8ffLXMRouterTff7b72.Td2a8ffPR_COMPLETETb4b4b4:
Te6edf3sync_button Tff7b72= Te6edf3real_sync_button
Tff7b72elseTb4b4b4:
Te6edf3sync_button Tff7b72= Te6edf3hidden_sync_button
Te6edf3button_columns Tff7b72= Te6edf3urwidTff7b72.Td2a8ffColumnsTb4b4b4(Tb4b4b4[Tb4b4b4(Ta5d6ff"Ta5d6ffweightTa5d6ff"Tb4b4b4, T79c0ff0.45Tb4b4b4, Te6edf3sync_buttonTb4b4b4)Tb4b4b4, Tb4b4b4(Ta5d6ff"Ta5d6ffweightTa5d6ff"Tb4b4b4, T79c0ff0.1Tb4b4b4, Te6edf3urwidTff7b72.Td2a8ffTextTb4b4b4(Ta5d6ff"Ta5d6ff"Tb4b4b4)Tb4b4b4)Tb4b4b4, Tb4b4b4(Ta5d6ff"Ta5d6ffweightTa5d6ff"Tb4b4b4, T79c0ff0.45Tb4b4b4, Te6edf3cancel_buttonTb4b4b4)Tb4b4b4]Tb4b4b4)
Te6edf3real_sync_buttonTff7b72.Td2a8ffbc Tff7b72= Te6edf3button_columns
Te6edf3pn_ident Tff7b72= Tff7b72None
Tff7b72if Tff7b72selfTff7b72.Td2a8ffappTff7b72.Td2a8ffget_default_propagation_nodeTb4b4b4(Tb4b4b4) Tff7b72!= Tff7b72NoneTb4b4b4:
Te6edf3pn_hash Tff7b72= Tff7b72selfTff7b72.Td2a8ffappTff7b72.Td2a8ffget_default_propagation_nodeTb4b4b4(Tb4b4b4)
Te6edf3pn_ident Tff7b72= Te6edf3RNSTff7b72.Td2a8ffIdentityTff7b72.Td2a8ffrecallTb4b4b4(Te6edf3pn_hashTb4b4b4)
Tff7b72if Te6edf3pn_ident Tff7b72== Tff7b72NoneTb4b4b4:
Te6edf3RNSTff7b72.Td2a8fflogTb4b4b4(Ta5d6ff"Ta5d6ffPropagation node identity is unknown, requesting from network...Ta5d6ff"Tb4b4b4, Te6edf3RNSTff7b72.Td2a8ffLOG_DEBUGTb4b4b4)
Te6edf3RNSTff7b72.Td2a8ffTransportTff7b72.Td2a8ffrequest_pathTb4b4b4(Te6edf3pn_hashTb4b4b4)
Tff7b72if Te6edf3pn_ident Tff7b72!= Tff7b72NoneTb4b4b4:
Te6edf3node_hash Tff7b72= Te6edf3RNSTff7b72.Td2a8ffDestinationTff7b72.Td2a8ffhash_from_name_and_identityTb4b4b4(Ta5d6ff"Ta5d6ffnomadnetwork.nodeTa5d6ff"Tb4b4b4, Te6edf3pn_identTb4b4b4)
Te6edf3pn_entry Tff7b72= Tff7b72selfTff7b72.Td2a8ffappTff7b72.Td2a8ffdirectoryTff7b72.Td2a8fffindTb4b4b4(Te6edf3node_hashTb4b4b4)
Te6edf3dialog Tff7b72= Te6edf3DialogLineBoxTb4b4b4(
Te6edf3urwidTff7b72.Td2a8ffPileTb4b4b4(Tb4b4b4[
Te6edf3urwidTff7b72.Td2a8ffTextTb4b4b4(Ta5d6ff"Ta5d6ff"Tff7b72+Te6edf3gTb4b4b4[Ta5d6ff"Ta5d6ffnodeTa5d6ff"Tb4b4b4]Tff7b72+Ta5d6ff"Ta5d6ff Ta5d6ff"Tff7b72+Tffa657strTb4b4b4(Te6edf3pn_entryTff7b72.Td2a8ffdisplay_nameTb4b4b4)Tb4b4b4, Te6edf3alignTff7b72=Ta5d6ff"Ta5d6ffcenterTa5d6ff"Tb4b4b4)Tb4b4b4,
Te6edf3urwidTff7b72.Td2a8ffDividerTb4b4b4(Te6edf3gTb4b4b4[Ta5d6ff"Ta5d6ffdivider1Ta5d6ff"Tb4b4b4]Tb4b4b4)Tb4b4b4,
Te6edf3sync_progressTb4b4b4,
Te6edf3urwidTff7b72.Td2a8ffDividerTb4b4b4(Te6edf3gTb4b4b4[Ta5d6ff"Ta5d6ffdivider1Ta5d6ff"Tb4b4b4]Tb4b4b4)Tb4b4b4,
Te6edf3r_mallTb4b4b4,
Te6edf3rbsTb4b4b4,
Te6edf3urwidTff7b72.Td2a8ffTextTb4b4b4(Ta5d6ff"Ta5d6ff"Tb4b4b4)Tb4b4b4,
Te6edf3button_columns
Tb4b4b4]Tb4b4b4)Tb4b4b4, Te6edf3titleTff7b72=Ta5d6ff"Ta5d6ffMessage SyncTa5d6ff"
Tb4b4b4)
Tff7b72elseTb4b4b4:
Te6edf3button_columns Tff7b72= Te6edf3urwidTff7b72.Td2a8ffColumnsTb4b4b4(Tb4b4b4[Tb4b4b4(Ta5d6ff"Ta5d6ffweightTa5d6ff"Tb4b4b4, T79c0ff0.45Tb4b4b4, Te6edf3urwidTff7b72.Td2a8ffTextTb4b4b4(Ta5d6ff"Ta5d6ff" Tb4b4b4)Tb4b4b4)Tb4b4b4, Tb4b4b4(Ta5d6ff"Ta5d6ffweightTa5d6ff"Tb4b4b4, T79c0ff0.1Tb4b4b4, Te6edf3urwidTff7b72.Td2a8ffTextTb4b4b4(Ta5d6ff"Ta5d6ff"Tb4b4b4)Tb4b4b4)Tb4b4b4, Tb4b4b4(Ta5d6ff"Ta5d6ffweightTa5d6ff"Tb4b4b4, T79c0ff0.45Tb4b4b4, Te6edf3cancel_buttonTb4b4b4)Tb4b4b4]Tb4b4b4)
Te6edf3dialog Tff7b72= Te6edf3DialogLineBoxTb4b4b4(
Te6edf3urwidTff7b72.Td2a8ffPileTb4b4b4(Tb4b4b4[
Te6edf3urwidTff7b72.Td2a8ffTextTb4b4b4(Ta5d6ff"Ta5d6ff"Tb4b4b4)Tb4b4b4,
Te6edf3urwidTff7b72.Td2a8ffTextTb4b4b4(Ta5d6ff"Ta5d6ffNo trusted nodes found, cannot syncTa5d6ff"Tb4b4b4, Te6edf3alignTff7b72=Ta5d6ff"Ta5d6ffcenterTa5d6ff"Tb4b4b4)Tb4b4b4,
Te6edf3urwidTff7b72.Td2a8ffTextTb4b4b4(Ta5d6ff"Ta5d6ff"Tb4b4b4)Tb4b4b4,
Te6edf3button_columns
Tb4b4b4]Tb4b4b4)Tb4b4b4, Te6edf3titleTff7b72=Ta5d6ff"Ta5d6ffMessage SyncTa5d6ff"
Tb4b4b4)
Te6edf3dialogTff7b72.Td2a8ffdelegate Tff7b72= Tff7b72self
Te6edf3dialogTff7b72.Td2a8ffsync_progress Tff7b72= Te6edf3sync_progress
Te6edf3dialogTff7b72.Td2a8ffcancel_button Tff7b72= Te6edf3cancel_button
Te6edf3dialogTff7b72.Td2a8ffreal_sync_button Tff7b72= Te6edf3real_sync_button
Te6edf3dialogTff7b72.Td2a8ffhidden_sync_button Tff7b72= Te6edf3hidden_sync_button
Te6edf3dialogTff7b72.Td2a8ffbc Tff7b72= Te6edf3button_columns
Tff7b72selfTff7b72.Td2a8ffsync_dialog Tff7b72= Te6edf3dialog
Te6edf3bottom Tff7b72= Tff7b72selfTff7b72.Td2a8fflistbox
Te6edf3overlay Tff7b72= Te6edf3urwidTff7b72.Td2a8ffOverlayTb4b4b4(Te6edf3dialogTb4b4b4, Te6edf3bottomTb4b4b4, Te6edf3alignTff7b72=Ta5d6ff"Ta5d6ffcenterTa5d6ff"Tb4b4b4, Te6edf3widthTff7b72=Tb4b4b4(Ta5d6ff"Ta5d6ffrelativeTa5d6ff"Tb4b4b4, T79c0ff100Tb4b4b4)Tb4b4b4, Te6edf3valignTff7b72=Ta5d6ff"Ta5d6ffmiddleTa5d6ff"Tb4b4b4, Te6edf3heightTff7b72=Ta5d6ff"Ta5d6ffpackTa5d6ff"Tb4b4b4, Te6edf3leftTff7b72=T79c0ff2Tb4b4b4, Te6edf3rightTff7b72=T79c0ff2Tb4b4b4)
Te6edf3options Tff7b72= Tff7b72selfTff7b72.Td2a8ffcolumns_widgetTff7b72.Td2a8ffoptionsTb4b4b4(Ta5d6ff"Ta5d6ffweightTa5d6ff"Tb4b4b4, Te6edf3ConversationsDisplayTff7b72.Td2a8fflist_widthTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffcolumns_widgetTff7b72.Td2a8ffcontentsTb4b4b4[T79c0ff0Tb4b4b4] Tff7b72= Tb4b4b4(Te6edf3overlayTb4b4b4, Te6edf3optionsTb4b4b4)
Tff7b72def Td2a8ffupdate_sync_dialogTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3loop Tff7b72= Tff7b72NoneTb4b4b4, Te6edf3sender Tff7b72= Tff7b72NoneTb4b4b4)Tb4b4b4:
Tff7b72if Tff7b72selfTff7b72.Td2a8ffdialog_open Tff7b72and Tff7b72selfTff7b72.Td2a8ffsync_dialog Tff7b72!= Tff7b72NoneTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffsync_dialogTff7b72.Td2a8ffsync_progressTff7b72.Td2a8ffset_completionTb4b4b4(Tff7b72selfTff7b72.Td2a8ffappTff7b72.Td2a8ffget_sync_progressTb4b4b4(Tb4b4b4)Tb4b4b4)
Tff7b72if Tff7b72selfTff7b72.Td2a8ffappTff7b72.Td2a8ffget_sync_statusTb4b4b4(Tb4b4b4) Tff7b72== Ta5d6ff"Ta5d6ffIdleTa5d6ff" Tff7b72or Tff7b72selfTff7b72.Td2a8ffappTff7b72.Td2a8ffmessage_routerTff7b72.Td2a8ffpropagation_transfer_state Tff7b72== Te6edf3LXMFTff7b72.Td2a8ffLXMRouterTff7b72.Td2a8ffPR_COMPLETETb4b4b4:
Tff7b72selfTff7b72.Td2a8ffsync_dialogTff7b72.Td2a8ffbcTff7b72.Td2a8ffcontentsTb4b4b4[T79c0ff0Tb4b4b4] Tff7b72= Tb4b4b4(Tff7b72selfTff7b72.Td2a8ffsync_dialogTff7b72.Td2a8ffreal_sync_buttonTb4b4b4, Tff7b72selfTff7b72.Td2a8ffsync_dialogTff7b72.Td2a8ffbcTff7b72.Td2a8ffoptionsTb4b4b4(Ta5d6ff"Ta5d6ffweightTa5d6ff"Tb4b4b4, T79c0ff0.45Tb4b4b4)Tb4b4b4)
Tff7b72elseTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffsync_dialogTff7b72.Td2a8ffbcTff7b72.Td2a8ffcontentsTb4b4b4[T79c0ff0Tb4b4b4] Tff7b72= Tb4b4b4(Tff7b72selfTff7b72.Td2a8ffsync_dialogTff7b72.Td2a8ffhidden_sync_buttonTb4b4b4, Tff7b72selfTff7b72.Td2a8ffsync_dialogTff7b72.Td2a8ffbcTff7b72.Td2a8ffoptionsTb4b4b4(Ta5d6ff"Ta5d6ffweightTa5d6ff"Tb4b4b4, T79c0ff0.45Tb4b4b4)Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffappTff7b72.Td2a8ffuiTff7b72.Td2a8ffloopTff7b72.Td2a8ffset_alarm_inTb4b4b4(T79c0ff0.2Tb4b4b4, Tff7b72selfTff7b72.Td2a8ffupdate_sync_dialogTb4b4b4)
Tff7b72def Td2a8ffconversation_list_selectionTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3arg1Tb4b4b4, Te6edf3arg2Tb4b4b4)Tb4b4b4:
Tff7b72pass
Tff7b72def Td2a8ffupdate_conversation_listTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Te6edf3ilb_position Tff7b72= Tff7b72selfTff7b72.Td2a8ffilbTff7b72.Td2a8ffget_selected_positionTb4b4b4(Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffupdate_listboxTb4b4b4(Tb4b4b4)
Te6edf3options Tff7b72= Tff7b72selfTff7b72.Td2a8ffcolumns_widgetTff7b72.Td2a8ffoptionsTb4b4b4(Ta5d6ff"Ta5d6ffweightTa5d6ff"Tb4b4b4, Te6edf3ConversationsDisplayTff7b72.Td2a8fflist_widthTb4b4b4)
Tff7b72if Tff7b72not Tb4b4b4(Tff7b72selfTff7b72.Td2a8ffdialog_open Tff7b72and Tff7b72selfTff7b72.Td2a8ffsync_dialog Tff7b72!= Tff7b72NoneTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffcolumns_widgetTff7b72.Td2a8ffcontentsTb4b4b4[T79c0ff0Tb4b4b4] Tff7b72= Tb4b4b4(Tff7b72selfTff7b72.Td2a8fflistboxTb4b4b4, Te6edf3optionsTb4b4b4)
Tff7b72elseTb4b4b4:
Te6edf3bottom Tff7b72= Tff7b72selfTff7b72.Td2a8fflistbox
Te6edf3overlay Tff7b72= Te6edf3urwidTff7b72.Td2a8ffOverlayTb4b4b4(Tff7b72selfTff7b72.Td2a8ffsync_dialogTb4b4b4, Te6edf3bottomTb4b4b4, Te6edf3alignTff7b72=Ta5d6ff"Ta5d6ffcenterTa5d6ff"Tb4b4b4, Te6edf3widthTff7b72=Tb4b4b4(Ta5d6ff"Ta5d6ffrelativeTa5d6ff"Tb4b4b4, T79c0ff100Tb4b4b4)Tb4b4b4, Te6edf3valignTff7b72=Ta5d6ff"Ta5d6ffmiddleTa5d6ff"Tb4b4b4, Te6edf3heightTff7b72=Ta5d6ff"Ta5d6ffpackTa5d6ff"Tb4b4b4, Te6edf3leftTff7b72=T79c0ff2Tb4b4b4, Te6edf3rightTff7b72=T79c0ff2Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffcolumns_widgetTff7b72.Td2a8ffcontentsTb4b4b4[T79c0ff0Tb4b4b4] Tff7b72= Tb4b4b4(Te6edf3overlayTb4b4b4, Te6edf3optionsTb4b4b4)
Tff7b72if Te6edf3ilb_position Tff7b72!= Tff7b72NoneTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffilbTff7b72.Td2a8ffselect_itemTb4b4b4(Te6edf3ilb_positionTb4b4b4)
Te6edf3nomadnetTff7b72.Td2a8ffNomadNetworkAppTff7b72.Td2a8ffget_shared_instanceTb4b4b4(Tb4b4b4)Tff7b72.Td2a8ffuiTff7b72.Td2a8ffloopTff7b72.Td2a8ffdraw_screenTb4b4b4(Tb4b4b4)
Tff7b72if Tff7b72selfTff7b72.Td2a8ffappTff7b72.Td2a8ffuiTff7b72.Td2a8ffmain_displayTff7b72.Td2a8ffsub_displaysTff7b72.Td2a8ffactive_display Tff7b72== Tff7b72selfTff7b72.Td2a8ffappTff7b72.Td2a8ffuiTff7b72.Td2a8ffmain_displayTff7b72.Td2a8ffsub_displaysTff7b72.Td2a8ffconversations_displayTb4b4b4:
Tff7b72if Tff7b72selfTff7b72.Td2a8ffcurrently_displayed_conversation Tff7b72!= Tff7b72NoneTb4b4b4:
Tff7b72if Tff7b72selfTff7b72.Td2a8ffappTff7b72.Td2a8ffconversation_is_unreadTb4b4b4(Tff7b72selfTff7b72.Td2a8ffcurrently_displayed_conversationTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffappTff7b72.Td2a8ffmark_conversation_readTb4b4b4(Tff7b72selfTff7b72.Td2a8ffcurrently_displayed_conversationTb4b4b4)
Tff7b72tryTb4b4b4:
Tff7b72if Te6edf3osTff7b72.Td2a8ffpathTff7b72.Td2a8ffisfileTb4b4b4(Tff7b72selfTff7b72.Td2a8ffappTff7b72.Td2a8ffconversationpath Tff7b72+ Ta5d6ff"Ta5d6ff/Ta5d6ff" Tff7b72+ Tff7b72selfTff7b72.Td2a8ffcurrently_displayed_conversation Tff7b72+ Ta5d6ff"Ta5d6ff/unreadTa5d6ff"Tb4b4b4)Tb4b4b4:
Te6edf3osTff7b72.Td2a8ffunlinkTb4b4b4(Tff7b72selfTff7b72.Td2a8ffappTff7b72.Td2a8ffconversationpath Tff7b72+ Ta5d6ff"Ta5d6ff/Ta5d6ff" Tff7b72+ Tff7b72selfTff7b72.Td2a8ffcurrently_displayed_conversation Tff7b72+ Ta5d6ff"Ta5d6ff/unreadTa5d6ff"Tb4b4b4)
Tff7b72except Tf85149Exception Tff7b72as Te6edf3eTb4b4b4:
Tff7b72raise Te6edf3e
Tff7b72def Td2a8ffdisplay_conversationTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4, Te6edf3source_hashTff7b72=Tff7b72NoneTb4b4b4)Tb4b4b4:
Tff7b72if Tff7b72selfTff7b72.Td2a8ffcurrently_displayed_conversation Tff7b72!= Tff7b72NoneTb4b4b4:
Tff7b72if Tff7b72selfTff7b72.Td2a8ffappTff7b72.Td2a8ffconversation_is_unreadTb4b4b4(Tff7b72selfTff7b72.Td2a8ffcurrently_displayed_conversationTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffappTff7b72.Td2a8ffmark_conversation_readTb4b4b4(Tff7b72selfTff7b72.Td2a8ffcurrently_displayed_conversationTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffcurrently_displayed_conversation Tff7b72= Te6edf3source_hash
Te6edf3options Tff7b72= Tff7b72selfTff7b72.Td2a8ffwidgetTff7b72.Td2a8ffoptionsTb4b4b4(Ta5d6ff"Ta5d6ffweightTa5d6ff"Tb4b4b4, T79c0ff1Tff7b72-Te6edf3ConversationsDisplayTff7b72.Td2a8fflist_widthTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffwidgetTff7b72.Td2a8ffcontentsTb4b4b4[T79c0ff1Tb4b4b4] Tff7b72= Tb4b4b4(Tff7b72selfTff7b72.Td2a8ffmake_conversation_widgetTb4b4b4(Te6edf3source_hashTb4b4b4)Tb4b4b4, Te6edf3optionsTb4b4b4)
Tff7b72if Te6edf3source_hash Tff7b72== Tff7b72NoneTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffwidgetTff7b72.Td2a8ffset_focus_columnTb4b4b4(T79c0ff0Tb4b4b4)
Tff7b72elseTb4b4b4:
Tff7b72if Tff7b72selfTff7b72.Td2a8ffappTff7b72.Td2a8ffconversation_is_unreadTb4b4b4(Te6edf3source_hashTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffappTff7b72.Td2a8ffmark_conversation_readTb4b4b4(Te6edf3source_hashTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffupdate_conversation_listTb4b4b4(Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffwidgetTff7b72.Td2a8ffset_focus_columnTb4b4b4(T79c0ff1Tb4b4b4)
Te6edf3conversation_position Tff7b72= Tff7b72None
Te6edf3index Tff7b72= T79c0ff0
Tff7b72for Te6edf3widget Tff7b72in Tff7b72selfTff7b72.Td2a8fflist_widgetsTb4b4b4:
Tff7b72if Te6edf3widgetTff7b72.Td2a8ffsource_hash Tff7b72== Te6edf3source_hashTb4b4b4:
Te6edf3conversation_position Tff7b72= Te6edf3index
Te6edf3index Tff7b72+Tff7b72= T79c0ff1
Tff7b72if Te6edf3conversation_position Tff7b72!= Tff7b72NoneTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffilbTff7b72.Td2a8ffselect_itemTb4b4b4(Te6edf3conversation_positionTb4b4b4)
Tff7b72def Td2a8ffmake_conversation_widgetTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3source_hashTb4b4b4)Tb4b4b4:
Tff7b72if Te6edf3source_hash Tff7b72in Te6edf3ConversationsDisplayTff7b72.Td2a8ffcached_conversation_widgetsTb4b4b4:
Te6edf3conversation_widget Tff7b72= Te6edf3ConversationsDisplayTff7b72.Td2a8ffcached_conversation_widgetsTb4b4b4[Te6edf3source_hashTb4b4b4]
Tff7b72if Te6edf3source_hash Tff7b72!= Tff7b72NoneTb4b4b4:
Te6edf3conversation_widgetTff7b72.Td2a8ffupdate_message_widgetsTb4b4b4(Te6edf3replaceTff7b72=Tff7b72TrueTb4b4b4)
Te6edf3conversation_widgetTff7b72.Td2a8ffcheck_editor_allowedTb4b4b4(Tb4b4b4)
Tff7b72return Te6edf3conversation_widget
Tff7b72elseTb4b4b4:
Te6edf3widget Tff7b72= Te6edf3ConversationWidgetTb4b4b4(Te6edf3source_hashTb4b4b4)
Te6edf3widgetTff7b72.Td2a8ffdelegate Tff7b72= Tff7b72self
Te6edf3ConversationsDisplayTff7b72.Td2a8ffcached_conversation_widgetsTb4b4b4[Te6edf3source_hashTb4b4b4] Tff7b72= Te6edf3widget
Te6edf3widgetTff7b72.Td2a8ffcheck_editor_allowedTb4b4b4(Tb4b4b4)
Tff7b72return Te6edf3widget
Tff7b72def Td2a8ffclose_conversation_by_hashTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3conversation_hashTb4b4b4)Tb4b4b4:
Tff7b72if Te6edf3conversation_hash Tff7b72in Te6edf3ConversationsDisplayTff7b72.Td2a8ffcached_conversation_widgetsTb4b4b4:
Te6edf3ConversationsDisplayTff7b72.Td2a8ffcached_conversation_widgetsTff7b72.Td2a8ffpopTb4b4b4(Te6edf3conversation_hashTb4b4b4)
Tff7b72if Tff7b72selfTff7b72.Td2a8ffcurrently_displayed_conversation Tff7b72== Te6edf3conversation_hashTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffdisplay_conversationTb4b4b4(Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4, Te6edf3source_hashTff7b72=Tff7b72NoneTb4b4b4)
Tff7b72def Td2a8ffclose_conversationTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3conversationTb4b4b4)Tb4b4b4:
Tff7b72if Te6edf3conversationTff7b72.Td2a8ffsource_hash Tff7b72in Te6edf3ConversationsDisplayTff7b72.Td2a8ffcached_conversation_widgetsTb4b4b4:
Te6edf3ConversationsDisplayTff7b72.Td2a8ffcached_conversation_widgetsTff7b72.Td2a8ffpopTb4b4b4(Te6edf3conversationTff7b72.Td2a8ffsource_hashTb4b4b4)
Tff7b72if Tff7b72selfTff7b72.Td2a8ffcurrently_displayed_conversation Tff7b72== Te6edf3conversationTff7b72.Td2a8ffsource_hashTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffdisplay_conversationTb4b4b4(Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4, Te6edf3source_hashTff7b72=Tff7b72NoneTb4b4b4)
Tff7b72def Td2a8ffconversation_list_widgetTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3conversationTb4b4b4)Tb4b4b4:
Te6edf3trust_level Tff7b72= Te6edf3conversationTb4b4b4[T79c0ff2Tb4b4b4]
Te6edf3display_name Tff7b72= Te6edf3conversationTb4b4b4[T79c0ff1Tb4b4b4]
Te6edf3source_hash Tff7b72= Te6edf3conversationTb4b4b4[T79c0ff0Tb4b4b4]
Te6edf3unread Tff7b72= Te6edf3conversationTb4b4b4[T79c0ff4Tb4b4b4]
Te6edf3g Tff7b72= Tff7b72selfTff7b72.Td2a8ffappTff7b72.Td2a8ffuiTff7b72.Td2a8ffglyphs
Tff7b72if Te6edf3trust_level Tff7b72== Te6edf3DirectoryEntryTff7b72.Td2a8ffUNTRUSTEDTb4b4b4:
Te6edf3symbol Tff7b72= Te6edf3gTb4b4b4[Ta5d6ff"Ta5d6ffcrossTa5d6ff"Tb4b4b4]
Te6edf3style Tff7b72= Ta5d6ff"Ta5d6fflist_untrustedTa5d6ff"
Te6edf3focus_style Tff7b72= Ta5d6ff"Ta5d6fflist_focus_untrustedTa5d6ff"
Tff7b72elif Te6edf3trust_level Tff7b72== Te6edf3DirectoryEntryTff7b72.Td2a8ffUNKNOWNTb4b4b4:
Te6edf3symbol Tff7b72= Ta5d6ff"Ta5d6ff?Ta5d6ff"
Te6edf3style Tff7b72= Ta5d6ff"Ta5d6fflist_unknownTa5d6ff"
Te6edf3focus_style Tff7b72= Ta5d6ff"Ta5d6fflist_focusTa5d6ff"
Tff7b72elif Te6edf3trust_level Tff7b72== Te6edf3DirectoryEntryTff7b72.Td2a8ffTRUSTEDTb4b4b4:
Te6edf3symbol Tff7b72= Te6edf3gTb4b4b4[Ta5d6ff"Ta5d6ffcheckTa5d6ff"Tb4b4b4]
Te6edf3style Tff7b72= Ta5d6ff"Ta5d6fflist_trustedTa5d6ff"
Te6edf3focus_style Tff7b72= Ta5d6ff"Ta5d6fflist_focus_trustedTa5d6ff"
Tff7b72elif Te6edf3trust_level Tff7b72== Te6edf3DirectoryEntryTff7b72.Td2a8ffWARNINGTb4b4b4:
Te6edf3symbol Tff7b72= Te6edf3gTb4b4b4[Ta5d6ff"Ta5d6ffwarningTa5d6ff"Tb4b4b4]
Te6edf3style Tff7b72= Ta5d6ff"Ta5d6fflist_warningTa5d6ff"
Te6edf3focus_style Tff7b72= Ta5d6ff"Ta5d6fflist_focusTa5d6ff"
Tff7b72elseTb4b4b4:
Te6edf3symbol Tff7b72= Te6edf3gTb4b4b4[Ta5d6ff"Ta5d6ffwarningTa5d6ff"Tb4b4b4]
Te6edf3style Tff7b72= Ta5d6ff"Ta5d6fflist_untrustedTa5d6ff"
Te6edf3focus_style Tff7b72= Ta5d6ff"Ta5d6fflist_focus_untrustedTa5d6ff"
Te6edf3display_text Tff7b72= Te6edf3symbol
Tff7b72if Te6edf3display_name Tff7b72!= Tff7b72None Tff7b72and Te6edf3display_name Tff7b72!= Ta5d6ff"Ta5d6ff"Tb4b4b4:
Te6edf3display_text Tff7b72+Tff7b72= Ta5d6ff"Ta5d6ff Ta5d6ff"Tff7b72+Te6edf3display_name
Tff7b72if Te6edf3trust_level Tff7b72!= Te6edf3DirectoryEntryTff7b72.Td2a8ffTRUSTEDTb4b4b4:
Te6edf3display_text Tff7b72+Tff7b72= Ta5d6ff"Ta5d6ff <Ta5d6ff"Tff7b72+Te6edf3source_hashTff7b72+Ta5d6ff"Ta5d6ff>Ta5d6ff"
Tff7b72if Te6edf3trust_level Tff7b72!= Te6edf3DirectoryEntryTff7b72.Td2a8ffUNTRUSTEDTb4b4b4:
Tff7b72if Te6edf3unreadTb4b4b4:
Tff7b72if Te6edf3source_hash Tff7b72!= Tff7b72selfTff7b72.Td2a8ffcurrently_displayed_conversationTb4b4b4:
Te6edf3display_text Tff7b72+Tff7b72= Ta5d6ff"Ta5d6ff Ta5d6ff"Tff7b72+Te6edf3gTb4b4b4[Ta5d6ff"Ta5d6ffunreadTa5d6ff"Tb4b4b4]
Te6edf3widget Tff7b72= Te6edf3ListEntryTb4b4b4(Te6edf3display_textTb4b4b4)
Te6edf3urwidTff7b72.Td2a8ffconnect_signalTb4b4b4(Te6edf3widgetTb4b4b4, Ta5d6ff"Ta5d6ffclickTa5d6ff"Tb4b4b4, Tff7b72selfTff7b72.Td2a8ffdisplay_conversationTb4b4b4, Te6edf3conversationTb4b4b4[T79c0ff0Tb4b4b4]Tb4b4b4)
Te6edf3display_widget Tff7b72= Te6edf3urwidTff7b72.Td2a8ffAttrMapTb4b4b4(Te6edf3widgetTb4b4b4, Te6edf3styleTb4b4b4, Te6edf3focus_styleTb4b4b4)
Te6edf3display_widgetTff7b72.Td2a8ffsource_hash Tff7b72= Te6edf3source_hash
Te6edf3display_widgetTff7b72.Td2a8ffdisplay_name Tff7b72= Te6edf3display_name
Tff7b72return Te6edf3display_widget
Tff7b72def Td2a8ffshortcutsTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Te6edf3focus_path Tff7b72= Tff7b72selfTff7b72.Td2a8ffwidgetTff7b72.Td2a8ffget_focus_pathTb4b4b4(Tb4b4b4)
Tff7b72if Te6edf3focus_pathTb4b4b4[T79c0ff0Tb4b4b4] Tff7b72== T79c0ff0Tb4b4b4:
Tff7b72return Tff7b72selfTff7b72.Td2a8fflist_shortcuts
Tff7b72elif Te6edf3focus_pathTb4b4b4[T79c0ff0Tb4b4b4] Tff7b72== T79c0ff1Tb4b4b4:
Tff7b72return Tff7b72selfTff7b72.Td2a8ffeditor_shortcuts
Tff7b72elseTb4b4b4:
Tff7b72return Tff7b72selfTff7b72.Td2a8fflist_shortcuts
Tff7b72class T56d364ListEntryTb4b4b4(Te6edf3urwidTff7b72.Td2a8ffTextTb4b4b4)Tb4b4b4:
Te6edf3_selectable Tff7b72= Tff7b72True
Te6edf3signals Tff7b72= Tb4b4b4[Ta5d6ff"Ta5d6ffclickTa5d6ff"Tb4b4b4]
Tff7b72def Td2a8ffkeypressTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3sizeTb4b4b4, Te6edf3keyTb4b4b4)Tb4b4b4:
T8b949e"""
Send 'click' signal on 'activate' command.
"""
Tff7b72if Tff7b72selfTff7b72.Td2a8ff_command_mapTb4b4b4[Te6edf3keyTb4b4b4] Tff7b72!= Te6edf3urwidTff7b72.Td2a8ffACTIVATETb4b4b4:
Tff7b72return Te6edf3key
Tff7b72selfTff7b72.Td2a8ff_emitTb4b4b4(Ta5d6ff'Ta5d6ffclickTa5d6ff'Tb4b4b4)
Tff7b72def Td2a8ffmouse_eventTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3sizeTb4b4b4, Te6edf3eventTb4b4b4, Te6edf3buttonTb4b4b4, Te6edf3xTb4b4b4, Te6edf3yTb4b4b4, Te6edf3focusTb4b4b4)Tb4b4b4:
T8b949e"""
Send 'click' signal on button 1 press.
"""
Tff7b72if Te6edf3button Tff7b72!= T79c0ff1 Tff7b72or Tff7b72not Te6edf3urwidTff7b72.Td2a8ffutilTff7b72.Td2a8ffis_mouse_pressTb4b4b4(Te6edf3eventTb4b4b4)Tb4b4b4:
Tff7b72return Tff7b72False
Tff7b72selfTff7b72.Td2a8ff_emitTb4b4b4(Ta5d6ff'Ta5d6ffclickTa5d6ff'Tb4b4b4)
Tff7b72return Tff7b72True
Tff7b72class T56d364MessageEditTb4b4b4(Te6edf3urwidTff7b72.Td2a8ffEditTb4b4b4)Tb4b4b4:
Tff7b72def Td2a8ffkeypressTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3sizeTb4b4b4, Te6edf3keyTb4b4b4)Tb4b4b4:
Tff7b72if Te6edf3key Tff7b72== Ta5d6ff"Ta5d6ffctrl dTa5d6ff"Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffdelegateTff7b72.Td2a8ffsend_messageTb4b4b4(Tb4b4b4)
Tff7b72elif Te6edf3key Tff7b72== Ta5d6ff"Ta5d6ffctrl kTa5d6ff"Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffdelegateTff7b72.Td2a8ffclear_editorTb4b4b4(Tb4b4b4)
Tff7b72elif Te6edf3key Tff7b72== Ta5d6ff"Ta5d6ffupTa5d6ff"Tb4b4b4:
Te6edf3y Tff7b72= Tff7b72selfTff7b72.Td2a8ffget_cursor_coordsTb4b4b4(Te6edf3sizeTb4b4b4)Tb4b4b4[T79c0ff1Tb4b4b4]
Tff7b72if Te6edf3y Tff7b72== T79c0ff0Tb4b4b4:
Tff7b72if Tff7b72selfTff7b72.Td2a8ffdelegateTff7b72.Td2a8fffull_editor_active Tff7b72and Tff7b72selfTff7b72.Td2a8ffname Tff7b72== Ta5d6ff"Ta5d6fftitle_editorTa5d6ff"Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffdelegateTff7b72.Td2a8ffframeTff7b72.Td2a8ffset_focusTb4b4b4(Ta5d6ff"Ta5d6ffbodyTa5d6ff"Tb4b4b4)
Tff7b72elif Tff7b72not Tff7b72selfTff7b72.Td2a8ffdelegateTff7b72.Td2a8fffull_editor_active Tff7b72and Tff7b72selfTff7b72.Td2a8ffname Tff7b72== Ta5d6ff"Ta5d6ffcontent_editorTa5d6ff"Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffdelegateTff7b72.Td2a8ffframeTff7b72.Td2a8ffset_focusTb4b4b4(Ta5d6ff"Ta5d6ffbodyTa5d6ff"Tb4b4b4)
Tff7b72elseTb4b4b4:
Tff7b72return Tffa657superTb4b4b4(Te6edf3MessageEditTb4b4b4, Tff7b72selfTb4b4b4)Tff7b72.Td2a8ffkeypressTb4b4b4(Te6edf3sizeTb4b4b4, Te6edf3keyTb4b4b4)
Tff7b72elseTb4b4b4:
Tff7b72return Tffa657superTb4b4b4(Te6edf3MessageEditTb4b4b4, Tff7b72selfTb4b4b4)Tff7b72.Td2a8ffkeypressTb4b4b4(Te6edf3sizeTb4b4b4, Te6edf3keyTb4b4b4)
Tff7b72elseTb4b4b4:
Tff7b72return Tffa657superTb4b4b4(Te6edf3MessageEditTb4b4b4, Tff7b72selfTb4b4b4)Tff7b72.Td2a8ffkeypressTb4b4b4(Te6edf3sizeTb4b4b4, Te6edf3keyTb4b4b4)
Tff7b72class T56d364ConversationFrameTb4b4b4(Te6edf3urwidTff7b72.Td2a8ffFrameTb4b4b4)Tb4b4b4:
Tff7b72def Td2a8ffkeypressTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3sizeTb4b4b4, Te6edf3keyTb4b4b4)Tb4b4b4:
Tff7b72if Tff7b72selfTff7b72.Td2a8ffget_focusTb4b4b4(Tb4b4b4) Tff7b72== Ta5d6ff"Ta5d6ffbodyTa5d6ff"Tb4b4b4:
Tff7b72if Te6edf3key Tff7b72== Ta5d6ff"Ta5d6ffupTa5d6ff" Tff7b72and Tff7b72selfTff7b72.Td2a8ffdelegateTff7b72.Td2a8ffmessagelistTff7b72.Td2a8fftop_is_visibleTb4b4b4:
Te6edf3nomadnetTff7b72.Td2a8ffNomadNetworkAppTff7b72.Td2a8ffget_shared_instanceTb4b4b4(Tb4b4b4)Tff7b72.Td2a8ffuiTff7b72.Td2a8ffmain_displayTff7b72.Td2a8ffframeTff7b72.Td2a8ffset_focusTb4b4b4(Ta5d6ff"Ta5d6ffheaderTa5d6ff"Tb4b4b4)
Tff7b72elif Te6edf3key Tff7b72== Ta5d6ff"Ta5d6ffdownTa5d6ff" Tff7b72and Tff7b72selfTff7b72.Td2a8ffdelegateTff7b72.Td2a8ffmessagelistTff7b72.Td2a8ffbottom_is_visibleTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffset_focusTb4b4b4(Ta5d6ff"Ta5d6fffooterTa5d6ff"Tb4b4b4)
Tff7b72elseTb4b4b4:
Tff7b72return Tffa657superTb4b4b4(Te6edf3ConversationFrameTb4b4b4, Tff7b72selfTb4b4b4)Tff7b72.Td2a8ffkeypressTb4b4b4(Te6edf3sizeTb4b4b4, Te6edf3keyTb4b4b4)
Tff7b72elif Te6edf3key Tff7b72== Ta5d6ff"Ta5d6ffctrl kTa5d6ff"Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffdelegateTff7b72.Td2a8ffclear_editorTb4b4b4(Tb4b4b4)
Tff7b72elseTb4b4b4:
Tff7b72return Tffa657superTb4b4b4(Te6edf3ConversationFrameTb4b4b4, Tff7b72selfTb4b4b4)Tff7b72.Td2a8ffkeypressTb4b4b4(Te6edf3sizeTb4b4b4, Te6edf3keyTb4b4b4)
Tff7b72class T56d364ConversationWidgetTb4b4b4(Te6edf3urwidTff7b72.Td2a8ffWidgetWrapTb4b4b4)Tb4b4b4:
Tff7b72def Tff7b72__init__Tb4b4b4(Tff7b72selfTb4b4b4, Te6edf3source_hashTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffapp Tff7b72= Te6edf3nomadnetTff7b72.Td2a8ffNomadNetworkAppTff7b72.Td2a8ffget_shared_instanceTb4b4b4(Tb4b4b4)
Te6edf3g Tff7b72= Tff7b72selfTff7b72.Td2a8ffappTff7b72.Td2a8ffuiTff7b72.Td2a8ffglyphs
Tff7b72if Te6edf3source_hash Tff7b72== Tff7b72NoneTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffframe Tff7b72= Tff7b72None
Te6edf3display_widget Tff7b72= Te6edf3urwidTff7b72.Td2a8ffLineBoxTb4b4b4(Te6edf3urwidTff7b72.Td2a8ffFillerTb4b4b4(Te6edf3urwidTff7b72.Td2a8ffTextTb4b4b4(Ta5d6ff"Tffea00\nTa5d6ff No conversation selectedTa5d6ff"Tb4b4b4)Tb4b4b4, Ta5d6ff"Ta5d6fftopTa5d6ff"Tb4b4b4)Tb4b4b4)
Te6edf3urwidTff7b72.Td2a8ffWidgetWrapTff7b72.Td2a8ff__init__Tb4b4b4(Tff7b72selfTb4b4b4, Te6edf3display_widgetTb4b4b4)
Tff7b72elseTb4b4b4:
Tff7b72if Te6edf3source_hash Tff7b72in Te6edf3ConversationsDisplayTff7b72.Td2a8ffcached_conversation_widgetsTb4b4b4:
Tff7b72return Te6edf3ConversationsDisplayTff7b72.Td2a8ffcached_conversation_widgetsTb4b4b4[Te6edf3source_hashTb4b4b4]
Tff7b72elseTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffsource_hash Tff7b72= Te6edf3source_hash
Tff7b72selfTff7b72.Td2a8ffconversation Tff7b72= Te6edf3nomadnetTff7b72.Td2a8ffConversationTb4b4b4(Te6edf3source_hashTb4b4b4, Te6edf3nomadnetTff7b72.Td2a8ffNomadNetworkAppTff7b72.Td2a8ffget_shared_instanceTb4b4b4(Tb4b4b4)Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffmessage_widgets Tff7b72= Tb4b4b4[Tb4b4b4]
Tff7b72selfTff7b72.Td2a8ffsort_by_timestamp Tff7b72= Tff7b72False
Tff7b72selfTff7b72.Td2a8ffupdating_message_widgets Tff7b72= Tff7b72False
Tff7b72selfTff7b72.Td2a8ffupdate_message_widgetsTb4b4b4(Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffconversationTff7b72.Td2a8ffregister_changed_callbackTb4b4b4(Tff7b72selfTff7b72.Td2a8ffconversation_changedTb4b4b4)
T8b949e#title_editor = MessageEdit(caption="\u270E", edit_text="", multiline=False)
Te6edf3title_editor Tff7b72= Te6edf3MessageEditTb4b4b4(Te6edf3captionTff7b72=Ta5d6ff"Ta5d6ff"Tb4b4b4, Te6edf3edit_textTff7b72=Ta5d6ff"Ta5d6ff"Tb4b4b4, Te6edf3multilineTff7b72=Tff7b72FalseTb4b4b4)
Te6edf3title_editorTff7b72.Td2a8ffdelegate Tff7b72= Tff7b72self
Te6edf3title_editorTff7b72.Td2a8ffname Tff7b72= Ta5d6ff"Ta5d6fftitle_editorTa5d6ff"
T8b949e#msg_editor = MessageEdit(caption="\u270E", edit_text="", multiline=True)
Te6edf3msg_editor Tff7b72= Te6edf3MessageEditTb4b4b4(Te6edf3captionTff7b72=Ta5d6ff"Ta5d6ff"Tb4b4b4, Te6edf3edit_textTff7b72=Ta5d6ff"Ta5d6ff"Tb4b4b4, Te6edf3multilineTff7b72=Tff7b72TrueTb4b4b4)
Te6edf3msg_editorTff7b72.Td2a8ffdelegate Tff7b72= Tff7b72self
Te6edf3msg_editorTff7b72.Td2a8ffname Tff7b72= Ta5d6ff"Ta5d6ffcontent_editorTa5d6ff"
Te6edf3header Tff7b72= Tff7b72None
Tff7b72if Tff7b72selfTff7b72.Td2a8ffconversationTff7b72.Td2a8fftrust_level Tff7b72== Te6edf3DirectoryEntryTff7b72.Td2a8ffUNTRUSTEDTb4b4b4:
Te6edf3header Tff7b72= Te6edf3urwidTff7b72.Td2a8ffAttrMapTb4b4b4(Te6edf3urwidTff7b72.Td2a8ffPaddingTb4b4b4(Te6edf3urwidTff7b72.Td2a8ffTextTb4b4b4(Te6edf3gTb4b4b4[Ta5d6ff"Ta5d6ffwarningTa5d6ff"Tb4b4b4]Tff7b72+Ta5d6ff"Ta5d6ff Warning: Conversation with untrusted peer Ta5d6ff"Tff7b72+Te6edf3gTb4b4b4[Ta5d6ff"Ta5d6ffwarningTa5d6ff"Tb4b4b4]Tb4b4b4, Te6edf3alignTff7b72=Ta5d6ff"Ta5d6ffcenterTa5d6ff"Tb4b4b4)Tb4b4b4)Tb4b4b4, Ta5d6ff"Ta5d6ffmsg_warning_untrustedTa5d6ff"Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffminimal_editor Tff7b72= Te6edf3urwidTff7b72.Td2a8ffAttrMapTb4b4b4(Te6edf3msg_editorTb4b4b4, Ta5d6ff"Ta5d6ffmsg_editorTa5d6ff"Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffminimal_editorTff7b72.Td2a8ffname Tff7b72= Ta5d6ff"Ta5d6ffminimal_editorTa5d6ff"
Te6edf3title_columns Tff7b72= Te6edf3urwidTff7b72.Td2a8ffColumnsTb4b4b4(Tb4b4b4[
Tb4b4b4(T79c0ff8Tb4b4b4, Te6edf3urwidTff7b72.Td2a8ffTextTb4b4b4(Ta5d6ff"Ta5d6ffTitleTa5d6ff"Tb4b4b4)Tb4b4b4)Tb4b4b4,
Te6edf3urwidTff7b72.Td2a8ffAttrMapTb4b4b4(Te6edf3title_editorTb4b4b4, Ta5d6ff"Ta5d6ffmsg_editorTa5d6ff"Tb4b4b4)Tb4b4b4,
Tb4b4b4]Tb4b4b4)
Te6edf3content_columns Tff7b72= Te6edf3urwidTff7b72.Td2a8ffColumnsTb4b4b4(Tb4b4b4[
Tb4b4b4(T79c0ff8Tb4b4b4, Te6edf3urwidTff7b72.Td2a8ffTextTb4b4b4(Ta5d6ff"Ta5d6ffContentTa5d6ff"Tb4b4b4)Tb4b4b4)Tb4b4b4,
Te6edf3urwidTff7b72.Td2a8ffAttrMapTb4b4b4(Te6edf3msg_editorTb4b4b4, Ta5d6ff"Ta5d6ffmsg_editorTa5d6ff"Tb4b4b4)
Tb4b4b4]Tb4b4b4)
Tff7b72selfTff7b72.Td2a8fffull_editor Tff7b72= Te6edf3urwidTff7b72.Td2a8ffPileTb4b4b4(Tb4b4b4[
Te6edf3title_columnsTb4b4b4,
Te6edf3content_columns
Tb4b4b4]Tb4b4b4)
Tff7b72selfTff7b72.Td2a8fffull_editorTff7b72.Td2a8ffname Tff7b72= Ta5d6ff"Ta5d6fffull_editorTa5d6ff"
Tff7b72selfTff7b72.Td2a8ffcontent_editor Tff7b72= Te6edf3msg_editor
Tff7b72selfTff7b72.Td2a8fftitle_editor Tff7b72= Te6edf3title_editor
Tff7b72selfTff7b72.Td2a8fffull_editor_active Tff7b72= Tff7b72False
Tff7b72selfTff7b72.Td2a8ffframe Tff7b72= Te6edf3ConversationFrameTb4b4b4(
Tff7b72selfTff7b72.Td2a8ffmessagelistTb4b4b4,
Te6edf3headerTff7b72=Te6edf3headerTb4b4b4,
Te6edf3footerTff7b72=Tff7b72selfTff7b72.Td2a8ffminimal_editorTb4b4b4,
Te6edf3focus_partTff7b72=Ta5d6ff"Ta5d6fffooterTa5d6ff"
Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffframeTff7b72.Td2a8ffdelegate Tff7b72= Tff7b72self
Tff7b72selfTff7b72.Td2a8ffdisplay_widget Tff7b72= Te6edf3urwidTff7b72.Td2a8ffLineBoxTb4b4b4(
Tff7b72selfTff7b72.Td2a8ffframe
Tb4b4b4)
Te6edf3urwidTff7b72.Td2a8ffWidgetWrapTff7b72.Td2a8ff__init__Tb4b4b4(Tff7b72selfTb4b4b4, Tff7b72selfTff7b72.Td2a8ffdisplay_widgetTb4b4b4)
Tff7b72def Td2a8ffclear_history_dialogTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Tff7b72def Td2a8ffdismiss_dialogTb4b4b4(Te6edf3senderTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffdialog_open Tff7b72= Tff7b72False
Tff7b72selfTff7b72.Td2a8ffconversation_changedTb4b4b4(Tff7b72NoneTb4b4b4)
Tff7b72def Td2a8ffconfirmedTb4b4b4(Te6edf3senderTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffdialog_open Tff7b72= Tff7b72False
Tff7b72selfTff7b72.Td2a8ffconversationTff7b72.Td2a8ffclear_historyTb4b4b4(Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffconversation_changedTb4b4b4(Tff7b72NoneTb4b4b4)
Te6edf3dialog Tff7b72= Te6edf3DialogLineBoxTb4b4b4(
Te6edf3urwidTff7b72.Td2a8ffPileTb4b4b4(Tb4b4b4[
Te6edf3urwidTff7b72.Td2a8ffTextTb4b4b4(Ta5d6ff"Ta5d6ffClear conversation historyTffea00\nTa5d6ff"Tb4b4b4, Te6edf3alignTff7b72=Ta5d6ff"Ta5d6ffcenterTa5d6ff"Tb4b4b4)Tb4b4b4,
Te6edf3urwidTff7b72.Td2a8ffColumnsTb4b4b4(Tb4b4b4[Tb4b4b4(Ta5d6ff"Ta5d6ffweightTa5d6ff"Tb4b4b4, T79c0ff0.45Tb4b4b4, Te6edf3urwidTff7b72.Td2a8ffButtonTb4b4b4(Ta5d6ff"Ta5d6ffYesTa5d6ff"Tb4b4b4, Te6edf3on_pressTff7b72=Te6edf3confirmedTb4b4b4)Tb4b4b4)Tb4b4b4, Tb4b4b4(Ta5d6ff"Ta5d6ffweightTa5d6ff"Tb4b4b4, T79c0ff0.1Tb4b4b4, Te6edf3urwidTff7b72.Td2a8ffTextTb4b4b4(Ta5d6ff"Ta5d6ff"Tb4b4b4)Tb4b4b4)Tb4b4b4, Tb4b4b4(Ta5d6ff"Ta5d6ffweightTa5d6ff"Tb4b4b4, T79c0ff0.45Tb4b4b4, Te6edf3urwidTff7b72.Td2a8ffButtonTb4b4b4(Ta5d6ff"Ta5d6ffNoTa5d6ff"Tb4b4b4, Te6edf3on_pressTff7b72=Te6edf3dismiss_dialogTb4b4b4)Tb4b4b4)Tb4b4b4]Tb4b4b4)
Tb4b4b4]Tb4b4b4)Tb4b4b4, Te6edf3titleTff7b72=Ta5d6ff"Ta5d6ff?Ta5d6ff"
Tb4b4b4)
Te6edf3dialogTff7b72.Td2a8ffdelegate Tff7b72= Tff7b72self
Te6edf3bottom Tff7b72= Tff7b72selfTff7b72.Td2a8ffmessagelist
Te6edf3overlay Tff7b72= Te6edf3urwidTff7b72.Td2a8ffOverlayTb4b4b4(Te6edf3dialogTb4b4b4, Te6edf3bottomTb4b4b4, Te6edf3alignTff7b72=Ta5d6ff"Ta5d6ffcenterTa5d6ff"Tb4b4b4, Te6edf3widthTff7b72=T79c0ff34Tb4b4b4, Te6edf3valignTff7b72=Ta5d6ff"Ta5d6ffmiddleTa5d6ff"Tb4b4b4, Te6edf3heightTff7b72=Ta5d6ff"Ta5d6ffpackTa5d6ff"Tb4b4b4, Te6edf3leftTff7b72=T79c0ff2Tb4b4b4, Te6edf3rightTff7b72=T79c0ff2Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffframeTff7b72.Td2a8ffcontentsTb4b4b4[Ta5d6ff"Ta5d6ffbodyTa5d6ff"Tb4b4b4] Tff7b72= Tb4b4b4(Te6edf3overlayTb4b4b4, Tff7b72selfTff7b72.Td2a8ffframeTff7b72.Td2a8ffoptionsTb4b4b4(Tb4b4b4)Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffframeTff7b72.Td2a8ffset_focusTb4b4b4(Ta5d6ff"Ta5d6ffbodyTa5d6ff"Tb4b4b4)
Tff7b72def Td2a8fftoggle_editorTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Tff7b72if Tff7b72selfTff7b72.Td2a8fffull_editor_activeTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffframeTff7b72.Td2a8ffcontentsTb4b4b4[Ta5d6ff"Ta5d6fffooterTa5d6ff"Tb4b4b4] Tff7b72= Tb4b4b4(Tff7b72selfTff7b72.Td2a8ffminimal_editorTb4b4b4, Tff7b72NoneTb4b4b4)
Tff7b72selfTff7b72.Td2a8fffull_editor_active Tff7b72= Tff7b72False
Tff7b72elseTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffframeTff7b72.Td2a8ffcontentsTb4b4b4[Ta5d6ff"Ta5d6fffooterTa5d6ff"Tb4b4b4] Tff7b72= Tb4b4b4(Tff7b72selfTff7b72.Td2a8fffull_editorTb4b4b4, Tff7b72NoneTb4b4b4)
Tff7b72selfTff7b72.Td2a8fffull_editor_active Tff7b72= Tff7b72True
Tff7b72def Td2a8ffcheck_editor_allowedTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Te6edf3g Tff7b72= Tff7b72selfTff7b72.Td2a8ffappTff7b72.Td2a8ffuiTff7b72.Td2a8ffglyphs
Tff7b72if Tff7b72selfTff7b72.Td2a8ffframeTb4b4b4:
Te6edf3allowed Tff7b72= Te6edf3nomadnetTff7b72.Td2a8ffNomadNetworkAppTff7b72.Td2a8ffget_shared_instanceTb4b4b4(Tb4b4b4)Tff7b72.Td2a8ffdirectoryTff7b72.Td2a8ffis_knownTb4b4b4(Tffa657bytesTff7b72.Td2a8fffromhexTb4b4b4(Tff7b72selfTff7b72.Td2a8ffsource_hashTb4b4b4)Tb4b4b4)
Tff7b72if Te6edf3allowedTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffframeTff7b72.Td2a8ffcontentsTb4b4b4[Ta5d6ff"Ta5d6fffooterTa5d6ff"Tb4b4b4] Tff7b72= Tb4b4b4(Tff7b72selfTff7b72.Td2a8ffminimal_editorTb4b4b4, Tff7b72NoneTb4b4b4)
Tff7b72elseTb4b4b4:
Te6edf3warning Tff7b72= Te6edf3urwidTff7b72.Td2a8ffAttrMapTb4b4b4(Te6edf3urwidTff7b72.Td2a8ffPaddingTb4b4b4(Te6edf3urwidTff7b72.Td2a8ffTextTb4b4b4(Te6edf3gTb4b4b4[Ta5d6ff"Ta5d6ffinfoTa5d6ff"Tb4b4b4]Tff7b72+Ta5d6ff"Ta5d6ff You cannot currently communicate with this peer, since itTa5d6ff'Ta5d6ffs identity keys are not knownTa5d6ff"Tb4b4b4, Te6edf3alignTff7b72=Ta5d6ff"Ta5d6ffcenterTa5d6ff"Tb4b4b4)Tb4b4b4)Tb4b4b4, Ta5d6ff"Ta5d6ffmsg_header_cautionTa5d6ff"Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffframeTff7b72.Td2a8ffcontentsTb4b4b4[Ta5d6ff"Ta5d6fffooterTa5d6ff"Tb4b4b4] Tff7b72= Tb4b4b4(Te6edf3warningTb4b4b4, Tff7b72NoneTb4b4b4)
Tff7b72def Td2a8fftoggle_focus_areaTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Te6edf3name Tff7b72= Ta5d6ff"Ta5d6ff"
Tff7b72tryTb4b4b4:
Te6edf3name Tff7b72= Tff7b72selfTff7b72.Td2a8ffframeTff7b72.Td2a8ffget_focus_widgetsTb4b4b4(Tb4b4b4)Tb4b4b4[T79c0ff0Tb4b4b4]Tff7b72.Td2a8ffname
Tff7b72except Tf85149Exception Tff7b72as Te6edf3eTb4b4b4:
Tff7b72pass
Tff7b72if Te6edf3name Tff7b72== Ta5d6ff"Ta5d6ffmessagelistTa5d6ff"Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffframeTff7b72.Td2a8ffset_focusTb4b4b4(Ta5d6ff"Ta5d6fffooterTa5d6ff"Tb4b4b4)
Tff7b72elif Te6edf3name Tff7b72== Ta5d6ff"Ta5d6ffminimal_editorTa5d6ff" Tff7b72or Te6edf3name Tff7b72== Ta5d6ff"Ta5d6fffull_editorTa5d6ff"Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffframeTff7b72.Td2a8ffset_focusTb4b4b4(Ta5d6ff"Ta5d6ffbodyTa5d6ff"Tb4b4b4)
Tff7b72def Td2a8ffkeypressTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3sizeTb4b4b4, Te6edf3keyTb4b4b4)Tb4b4b4:
Tff7b72if Te6edf3key Tff7b72== Ta5d6ff"Ta5d6fftabTa5d6ff"Tb4b4b4:
Tff7b72selfTff7b72.Td2a8fftoggle_focus_areaTb4b4b4(Tb4b4b4)
Tff7b72elif Te6edf3key Tff7b72== Ta5d6ff"Ta5d6ffctrl wTa5d6ff"Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffcloseTb4b4b4(Tb4b4b4)
Tff7b72elif Te6edf3key Tff7b72== Ta5d6ff"Ta5d6ffctrl pTa5d6ff"Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffconversationTff7b72.Td2a8ffpurge_failedTb4b4b4(Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffconversation_changedTb4b4b4(Tff7b72NoneTb4b4b4)
Tff7b72elif Te6edf3key Tff7b72== Ta5d6ff"Ta5d6ffctrl tTa5d6ff"Tb4b4b4:
Tff7b72selfTff7b72.Td2a8fftoggle_editorTb4b4b4(Tb4b4b4)
Tff7b72elif Te6edf3key Tff7b72== Ta5d6ff"Ta5d6ffctrl xTa5d6ff"Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffclear_history_dialogTb4b4b4(Tb4b4b4)
Tff7b72elif Te6edf3key Tff7b72== Ta5d6ff"Ta5d6ffctrl oTa5d6ff"Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffsort_by_timestamp Tff7b72^Tff7b72= Tff7b72True
Tff7b72selfTff7b72.Td2a8ffconversation_changedTb4b4b4(Tff7b72NoneTb4b4b4)
Tff7b72elseTb4b4b4:
Tff7b72return Tffa657superTb4b4b4(Te6edf3ConversationWidgetTb4b4b4, Tff7b72selfTb4b4b4)Tff7b72.Td2a8ffkeypressTb4b4b4(Te6edf3sizeTb4b4b4, Te6edf3keyTb4b4b4)
Tff7b72def Td2a8ffconversation_changedTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3conversationTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffupdate_message_widgetsTb4b4b4(Te6edf3replace Tff7b72= Tff7b72TrueTb4b4b4)
Tff7b72def Td2a8ffupdate_message_widgetsTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3replace Tff7b72= Tff7b72FalseTb4b4b4)Tb4b4b4:
Tff7b72while Tff7b72selfTff7b72.Td2a8ffupdating_message_widgetsTb4b4b4:
Te6edf3timeTff7b72.Td2a8ffsleepTb4b4b4(T79c0ff0.5Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffupdating_message_widgets Tff7b72= Tff7b72True
Tff7b72selfTff7b72.Td2a8ffmessage_widgets Tff7b72= Tb4b4b4[Tb4b4b4]
Te6edf3added_hashes Tff7b72= Tb4b4b4[Tb4b4b4]
Tff7b72for Te6edf3message Tff7b72in Tff7b72selfTff7b72.Td2a8ffconversationTff7b72.Td2a8ffmessagesTb4b4b4:
Te6edf3message_hash Tff7b72= Te6edf3messageTff7b72.Td2a8ffget_hashTb4b4b4(Tb4b4b4)
Tff7b72if Tff7b72not Te6edf3message_hash Tff7b72in Te6edf3added_hashesTb4b4b4:
Te6edf3added_hashesTff7b72.Td2a8ffappendTb4b4b4(Te6edf3message_hashTb4b4b4)
Te6edf3message_widget Tff7b72= Te6edf3LXMessageWidgetTb4b4b4(Te6edf3messageTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffmessage_widgetsTff7b72.Td2a8ffappendTb4b4b4(Te6edf3message_widgetTb4b4b4)
Tff7b72if Tff7b72selfTff7b72.Td2a8ffsort_by_timestampTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffmessage_widgetsTff7b72.Td2a8ffsortTb4b4b4(Te6edf3keyTff7b72=Tff7b72lambda Te6edf3mTb4b4b4: Te6edf3mTff7b72.Td2a8fftimestampTb4b4b4, Te6edf3reverseTff7b72=Tff7b72FalseTb4b4b4)
Tff7b72elseTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffmessage_widgetsTff7b72.Td2a8ffsortTb4b4b4(Te6edf3keyTff7b72=Tff7b72lambda Te6edf3mTb4b4b4: Te6edf3mTff7b72.Td2a8ffsort_timestampTb4b4b4, Te6edf3reverseTff7b72=Tff7b72FalseTb4b4b4)
Tff7b72from T7ee787nomadnetT7ee787.T7ee787vendorT7ee787.T7ee787additional_urwid_widgets Tff7b72import Te6edf3IndicativeListBox
Tff7b72selfTff7b72.Td2a8ffmessagelist Tff7b72= Te6edf3IndicativeListBoxTb4b4b4(Tff7b72selfTff7b72.Td2a8ffmessage_widgetsTb4b4b4, Te6edf3position Tff7b72= Tffa657lenTb4b4b4(Tff7b72selfTff7b72.Td2a8ffmessage_widgetsTb4b4b4)Tff7b72-T79c0ff1Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffmessagelistTff7b72.Td2a8ffname Tff7b72= Ta5d6ff"Ta5d6ffmessagelistTa5d6ff"
Tff7b72if Te6edf3replaceTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffframeTff7b72.Td2a8ffcontentsTb4b4b4[Ta5d6ff"Ta5d6ffbodyTa5d6ff"Tb4b4b4] Tff7b72= Tb4b4b4(Tff7b72selfTff7b72.Td2a8ffmessagelistTb4b4b4, Tff7b72NoneTb4b4b4)
Te6edf3nomadnetTff7b72.Td2a8ffNomadNetworkAppTff7b72.Td2a8ffget_shared_instanceTb4b4b4(Tb4b4b4)Tff7b72.Td2a8ffuiTff7b72.Td2a8ffloopTff7b72.Td2a8ffdraw_screenTb4b4b4(Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffupdating_message_widgets Tff7b72= Tff7b72False
Tff7b72def Td2a8ffclear_editorTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffcontent_editorTff7b72.Td2a8ffset_edit_textTb4b4b4(Ta5d6ff"Ta5d6ff"Tb4b4b4)
Tff7b72selfTff7b72.Td2a8fftitle_editorTff7b72.Td2a8ffset_edit_textTb4b4b4(Ta5d6ff"Ta5d6ff"Tb4b4b4)
Tff7b72def Td2a8ffsend_messageTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Te6edf3content Tff7b72= Tff7b72selfTff7b72.Td2a8ffcontent_editorTff7b72.Td2a8ffget_edit_textTb4b4b4(Tb4b4b4)
Te6edf3title Tff7b72= Tff7b72selfTff7b72.Td2a8fftitle_editorTff7b72.Td2a8ffget_edit_textTb4b4b4(Tb4b4b4)
Tff7b72if Tff7b72not Te6edf3content Tff7b72== Ta5d6ff"Ta5d6ff"Tb4b4b4:
Tff7b72if Tff7b72selfTff7b72.Td2a8ffconversationTff7b72.Td2a8ffsendTb4b4b4(Te6edf3contentTb4b4b4, Te6edf3titleTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffclear_editorTb4b4b4(Tb4b4b4)
Tff7b72elseTb4b4b4:
Tff7b72pass
Tff7b72def Td2a8ffcloseTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffdelegateTff7b72.Td2a8ffclose_conversationTb4b4b4(Tff7b72selfTb4b4b4)
Tff7b72class T56d364LXMessageWidgetTb4b4b4(Te6edf3urwidTff7b72.Td2a8ffWidgetWrapTb4b4b4)Tb4b4b4:
Tff7b72def Tff7b72__init__Tb4b4b4(Tff7b72selfTb4b4b4, Te6edf3messageTb4b4b4)Tb4b4b4:
Te6edf3app Tff7b72= Te6edf3nomadnetTff7b72.Td2a8ffNomadNetworkAppTff7b72.Td2a8ffget_shared_instanceTb4b4b4(Tb4b4b4)
Te6edf3g Tff7b72= Te6edf3appTff7b72.Td2a8ffuiTff7b72.Td2a8ffglyphs
Tff7b72selfTff7b72.Td2a8fftimestamp Tff7b72= Te6edf3messageTff7b72.Td2a8ffget_timestampTb4b4b4(Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffsort_timestamp Tff7b72= Te6edf3messageTff7b72.Td2a8ffsort_timestamp
Te6edf3time_format Tff7b72= Te6edf3appTff7b72.Td2a8fftime_format
Te6edf3message_time Tff7b72= Te6edf3datetimeTff7b72.Td2a8fffromtimestampTb4b4b4(Tff7b72selfTff7b72.Td2a8fftimestampTb4b4b4)
Te6edf3encryption_string Tff7b72= Ta5d6ff"Ta5d6ff"
Tff7b72if Te6edf3messageTff7b72.Td2a8ffget_transport_encryptedTb4b4b4(Tb4b4b4)Tb4b4b4:
Te6edf3encryption_string Tff7b72= Ta5d6ff"Ta5d6ff [Ta5d6ff"Tff7b72+Te6edf3gTb4b4b4[Ta5d6ff"Ta5d6ffencryptedTa5d6ff"Tb4b4b4]Tff7b72+Ta5d6ff"Ta5d6ff Ta5d6ff"Tff7b72+Tffa657strTb4b4b4(Te6edf3messageTff7b72.Td2a8ffget_transport_encryptionTb4b4b4(Tb4b4b4)Tb4b4b4)Tff7b72+Ta5d6ff"Ta5d6ff]Ta5d6ff"
Tff7b72elseTb4b4b4:
Te6edf3encryption_string Tff7b72= Ta5d6ff"Ta5d6ff [Ta5d6ff"Tff7b72+Te6edf3gTb4b4b4[Ta5d6ff"Ta5d6ffplaintextTa5d6ff"Tb4b4b4]Tff7b72+Ta5d6ff"Ta5d6ff Ta5d6ff"Tff7b72+Tffa657strTb4b4b4(Te6edf3messageTff7b72.Td2a8ffget_transport_encryptionTb4b4b4(Tb4b4b4)Tb4b4b4)Tff7b72+Ta5d6ff"Ta5d6ff]Ta5d6ff"
Te6edf3title_string Tff7b72= Te6edf3message_timeTff7b72.Td2a8ffstrftimeTb4b4b4(Te6edf3time_formatTb4b4b4)Tff7b72+Te6edf3encryption_string
Tff7b72if Te6edf3appTff7b72.Td2a8fflxmf_destinationTff7b72.Td2a8ffhash Tff7b72== Te6edf3messageTff7b72.Td2a8fflxmTff7b72.Td2a8ffsource_hashTb4b4b4:
Tff7b72if Te6edf3messageTff7b72.Td2a8fflxmTff7b72.Td2a8ffstate Tff7b72== Te6edf3LXMFTff7b72.Td2a8ffLXMessageTff7b72.Td2a8ffDELIVEREDTb4b4b4:
Te6edf3header_style Tff7b72= Ta5d6ff"Ta5d6ffmsg_header_deliveredTa5d6ff"
Te6edf3title_string Tff7b72= Te6edf3gTb4b4b4[Ta5d6ff"Ta5d6ffcheckTa5d6ff"Tb4b4b4]Tff7b72+Ta5d6ff"Ta5d6ff Ta5d6ff"Tff7b72+Te6edf3title_string
Tff7b72elif Te6edf3messageTff7b72.Td2a8fflxmTff7b72.Td2a8ffstate Tff7b72== Te6edf3LXMFTff7b72.Td2a8ffLXMessageTff7b72.Td2a8ffFAILEDTb4b4b4:
Te6edf3header_style Tff7b72= Ta5d6ff"Ta5d6ffmsg_header_failedTa5d6ff"
Te6edf3title_string Tff7b72= Te6edf3gTb4b4b4[Ta5d6ff"Ta5d6ffcrossTa5d6ff"Tb4b4b4]Tff7b72+Ta5d6ff"Ta5d6ff Ta5d6ff"Tff7b72+Te6edf3title_string
Tff7b72elif Te6edf3messageTff7b72.Td2a8fflxmTff7b72.Td2a8ffmethod Tff7b72== Te6edf3LXMFTff7b72.Td2a8ffLXMessageTff7b72.Td2a8ffPROPAGATED Tff7b72and Te6edf3messageTff7b72.Td2a8fflxmTff7b72.Td2a8ffstate Tff7b72== Te6edf3LXMFTff7b72.Td2a8ffLXMessageTff7b72.Td2a8ffSENTTb4b4b4:
Te6edf3header_style Tff7b72= Ta5d6ff"Ta5d6ffmsg_header_propagatedTa5d6ff"
Te6edf3title_string Tff7b72= Te6edf3gTb4b4b4[Ta5d6ff"Ta5d6ffsentTa5d6ff"Tb4b4b4]Tff7b72+Ta5d6ff"Ta5d6ff Ta5d6ff"Tff7b72+Te6edf3title_string
Tff7b72elif Te6edf3messageTff7b72.Td2a8fflxmTff7b72.Td2a8ffstate Tff7b72== Te6edf3LXMFTff7b72.Td2a8ffLXMessageTff7b72.Td2a8ffSENTTb4b4b4:
Te6edf3header_style Tff7b72= Ta5d6ff"Ta5d6ffmsg_header_sentTa5d6ff"
Te6edf3title_string Tff7b72= Te6edf3gTb4b4b4[Ta5d6ff"Ta5d6ffsentTa5d6ff"Tb4b4b4]Tff7b72+Ta5d6ff"Ta5d6ff Ta5d6ff"Tff7b72+Te6edf3title_string
Tff7b72elseTb4b4b4:
Te6edf3header_style Tff7b72= Ta5d6ff"Ta5d6ffmsg_header_sentTa5d6ff"
Te6edf3title_string Tff7b72= Te6edf3gTb4b4b4[Ta5d6ff"Ta5d6ffarrow_rTa5d6ff"Tb4b4b4]Tff7b72+Ta5d6ff"Ta5d6ff Ta5d6ff"Tff7b72+Te6edf3title_string
Tff7b72elseTb4b4b4:
Tff7b72if Te6edf3messageTff7b72.Td2a8ffsignature_validatedTb4b4b4(Tb4b4b4)Tb4b4b4:
Te6edf3header_style Tff7b72= Ta5d6ff"Ta5d6ffmsg_header_okTa5d6ff"
Te6edf3title_string Tff7b72= Te6edf3gTb4b4b4[Ta5d6ff"Ta5d6ffcheckTa5d6ff"Tb4b4b4]Tff7b72+Ta5d6ff"Ta5d6ff Ta5d6ff"Tff7b72+Te6edf3title_string
Tff7b72elseTb4b4b4:
Te6edf3header_style Tff7b72= Ta5d6ff"Ta5d6ffmsg_header_cautionTa5d6ff"
Te6edf3title_string Tff7b72= Te6edf3gTb4b4b4[Ta5d6ff"Ta5d6ffwarningTa5d6ff"Tb4b4b4]Tff7b72+Ta5d6ff"Ta5d6ff Ta5d6ff"Tff7b72+Te6edf3messageTff7b72.Td2a8ffget_signature_descriptionTb4b4b4(Tb4b4b4) Tff7b72+ Ta5d6ff"Tffea00\nTa5d6ff Ta5d6ff" Tff7b72+ Te6edf3title_string
Tff7b72if Te6edf3messageTff7b72.Td2a8ffget_titleTb4b4b4(Tb4b4b4) Tff7b72!= Ta5d6ff"Ta5d6ff"Tb4b4b4:
Te6edf3title_string Tff7b72+Tff7b72= Ta5d6ff"Ta5d6ff | Ta5d6ff" Tff7b72+ Te6edf3messageTff7b72.Td2a8ffget_titleTb4b4b4(Tb4b4b4)
Te6edf3title Tff7b72= Te6edf3urwidTff7b72.Td2a8ffAttrMapTb4b4b4(Te6edf3urwidTff7b72.Td2a8ffTextTb4b4b4(Te6edf3title_stringTb4b4b4)Tb4b4b4, Te6edf3header_styleTb4b4b4)
Te6edf3display_widget Tff7b72= Te6edf3urwidTff7b72.Td2a8ffPileTb4b4b4(Tb4b4b4[
Te6edf3titleTb4b4b4,
Te6edf3urwidTff7b72.Td2a8ffTextTb4b4b4(Te6edf3messageTff7b72.Td2a8ffget_contentTb4b4b4(Tb4b4b4)Tb4b4b4)Tb4b4b4,
Te6edf3urwidTff7b72.Td2a8ffTextTb4b4b4(Ta5d6ff"Ta5d6ff"Tb4b4b4)
Tb4b4b4]Tb4b4b4)
Te6edf3urwidTff7b72.Td2a8ffWidgetWrapTff7b72.Td2a8ff__init__Tb4b4b4(Tff7b72selfTb4b4b4, Te6edf3display_widgetTb4b4b4)
Tff7b72class T56d364SyncProgressBarTb4b4b4(Te6edf3urwidTff7b72.Td2a8ffProgressBarTb4b4b4)Tb4b4b4:
Tff7b72def Td2a8ffget_textTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Te6edf3status Tff7b72= Te6edf3nomadnetTff7b72.Td2a8ffNomadNetworkAppTff7b72.Td2a8ffget_shared_instanceTb4b4b4(Tb4b4b4)Tff7b72.Td2a8ffget_sync_statusTb4b4b4(Tb4b4b4)
Te6edf3show_percent Tff7b72= Te6edf3nomadnetTff7b72.Td2a8ffNomadNetworkAppTff7b72.Td2a8ffget_shared_instanceTb4b4b4(Tb4b4b4)Tff7b72.Td2a8ffsync_status_show_percentTb4b4b4(Tb4b4b4)
Tff7b72if Te6edf3show_percentTb4b4b4:
Tff7b72return Te6edf3statusTff7b72+Ta5d6ff"Ta5d6ff Ta5d6ff"Tff7b72+Tffa657superTb4b4b4(Tb4b4b4)Tff7b72.Td2a8ffget_textTb4b4b4(Tb4b4b4)
Tff7b72elseTb4b4b4:
Tff7b72return Te6edf3status
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────